私は2つのリストを持っています:
l1 = ['k', 'l', 'k', 's', 'l', 't', 'k']
l2 = ['h', 't', 'h', 't', 't', 's', 's']
最初のリストの i 番目の位置にある項目と、2 番目のリストの同じ位置にある項目の組み合わせの出現をカウントしたいと考えています。結果を次のようにしたいと思います。
kh = 2、lt = 2、st = 1、ts = 1、ks = 1
最初にリストからタプルを作成するのが最善だと思いました:
tupleList = zip(l1,l2)
tupeleList = [('k', 'h'), ('l', 't'), ('k', 'h'), ('s', 't'), ('l', 't'), ('t', 's'), ('k', 's')]
次に、そのタプルのリスト内の一意の要素をカウントする辞書を作成します。
myDict = {}
for item in tupleList:
if item[1] in myDict:
myDi [ item[1] ] += item[2]
else
myDi [ item[1] ] = item[2]
しかし、「タプルインデックスが範囲外です」というエラーが表示されます。何が問題ですか?最初にタプルを作るのは効率的ではないでしょうか?