dict1 と dict2 の 2 つの辞書があります。ディクショナリには、ID としてのキーと文字列としての値が含まれます。dict1 のすべての値と dict2 の他のすべての値のすべてのペア比較を実行する必要があります。
私は正常に動作している次のコードを使用していますが、非常に遅いです。私の実際のデータには、各辞書に約 100,000 の値が含まれています。同じことを行う他の「効率的な」方法はありますか。
import difflib
dict1 = {"111": "asdfa", "222":"gdjkgd", "333":"xvbkx"}
dict2 = {"311": "asdfa", "322":"gdjkzxgd", "333":"xvvbkx"}
qKeys = sorted(dict2.keys())
#Write the header in outfile
nline = "ref"+ "\t" + "\t".join(qKeys) + "\n"
print(nline)
for item in dict1:
ratioArr = []
refseq = dict1[item]
for qitem in qKeys:
qSeq = dict2[qitem]
myratio = round(difflib.SequenceMatcher(None, refseq, qSeq).ratio(),2)
ratioArr.append(str(myratio))
#print(myratio)
nline = item + "\t" + "\t".join(ratioArr)+"\n"
print(nline)