我试图在两个不同的字典中找到对应的键。每个都有大约 60 万个条目。
比如说:
myRDP = { 'Actinobacter': 'GATCGA...TCA', 'subtilus sp.': 'ATCGATT...ACT' }
myNames = { 'Actinobacter': '8924342' }
我想打印出 Actinobacter (8924342) 的值,因为它与 myRDP 中的值匹配。
以下代码有效,但速度很慢:
for key in myRDP:
for jey in myNames:
if key == jey:
print key, myNames[key]
我尝试了以下方法,但总是导致 KeyError:
for key in myRDP:
print myNames[key]
是否有可能在 C 中实现了一个函数来执行此操作?我用谷歌搜索,但似乎没有任何效果。
谢谢。
最佳答案
使用集合,因为它们有一个内置的 intersection
方法,应该很快:
myRDP = { 'Actinobacter': 'GATCGA...TCA', 'subtilus sp.': 'ATCGATT...ACT' }
myNames = { 'Actinobacter': '8924342' }
rdpSet = set(myRDP)
namesSet = set(myNames)
for name in rdpSet.intersection(namesSet):
print name, myNames[name]
# Prints: Actinobacter 8924342
关于python - 在两个大字典中查找匹配键并快速完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1317410/