我有两个字典,dict1 和 dict2。字典包含作为 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)