我有一個列表,其中包含一定數量的詞典,其中我必須與其他詞典進行比較。將詞典列表與另一個詞典結合起來
他們有以下形式(沒有具體的形式或圖案的鍵和值,這是隨機選取的例子):
list1 = [
{'X1': 'Q587', 'X2': 'Q67G7', ...},
{'AB1': 'P5K7', 'CB2': 'P678', ...},
{'B1': 'P6H78', 'C2': 'BAA5', ...}]
dict1 = {
'X1': set([B00001,B00020,B00010]),
'AB1': set([B00001,B00007,B00003]),
'C2': set([B00001,B00002,B00003]), ...
}
我想現在已經是其具有作爲密鑰的新字典:list1中的字典的值。並作爲值dict1的值。只有當鑰匙在比較詞典中相交時。
nDicts = len(list1)
resultDict = {}
for key in range(0,nDicts):
for x in list1[key].keys():
if x in dict1.keys():
resultDict.update{list1[key][x]:dict1[x]}
print resultDict
所需的輸出應該是這樣的形式:
我在下面的方式做到了這一點
resulDict = {
'Q587': set([B00001,B00020,B00010]),
'P5K7': set([B00001,B00007,B00003]),
'BAA5': set([B00001,B00002,B00003]), ...
}
這工作,但由於數據量是如此之高,這需要永遠。 有沒有更好的方法來做到這一點?
編輯:我改變了一點輸入值,唯一重要的是在list1和dict1內的字典之間相交的鍵。
哪一個更大? 'list1'或'dict1'? – Hyperboreus
有沒有出現在'list1'中的多個字典中的鍵? – Hyperboreus
您能否請您展示一些實際的樣本數據(可以評估和使用,而不是語法錯誤)以及所需的輸出數據? – abarnert