ユニークなキーを持つ2つの大きな辞書がありますが、値が重複する可能性があります。私は辞書の値の各セットをお互いに比較し、重複の数を見つけたいと思います。私は2つのfor
ループとset
を使用してこれを行っていますが、これを行うためにはより高速でエレガントな方法があるのだろうかと思っています。セットを使用するよりも早く辞書を比較する方法
dic1 = {'a': ['1','2','3'], 'b':['4','5','6'], 'c':['7','8','9']}
dic2 = {'d': ['1','8','9'], 'e':['10','11','12'], 'f':['7','8','9']}
final_list=[]
for key1 in dic1:
temp=[]
for key2 in dic2:
test = set(dic1[key1])
query = set(dic2[key2])
x = len(test & query)
temp.append([key2, x])
final_list.append([key1, temp])
最後の行にエラーがあります。あなたは 'final_list.append([key1、temp])'を意味しましたか? –
良いキャッチ。 – zach
dic1のすべてのキーとdic2のすべてのキーを実際に比較していますか?それは彼らが** O ** n^2と呼ぶものです。それは本質的に遅いです。 –