我有一個包含不同數量項目值的列表的字典。 我想比較這個詞典(dict1)的值與另一個(dict2)的鍵值,如果它們匹配,則打印dict1的匹配組件的鍵和值以及dict2的值。 這兩個字典都很大,目前這個過程太長了,你可以從這個基本的腳本中猜到。將一個字典的鍵與一個值列表比較一個字典到另一個字典
dict1 = {boys:[tom,jon],girls:[suzy]}
dict2 = {suzy:paper-stapler-extraordinaire,jon:paper-shredderoligist,tom:garbage-specialist}
輸出:
boys \t tom \t garbage-specialist
boys \t jon \t paper-shredderoligist etc.....
for k,v in dict2.items():
for key,value in dict1.items():
if k in value[0]:
print str(key)+"\t"+str(value[0])+"\t"+v
if len(value)>1:
if k in value[1]:
print str(key)+"\t"+str(value[0])+"\t"+v
可能有人提出了更大的內存有效的方法?也許是一個列表理解? 這一直沒有工作...... A = [在dict2 k代表k如果K的字典]
如果您使用Python 2.x,請使用'iteritems'而不是'items'。 – falsetru
速度真的會有所作爲嗎? – Vince
['dict.items'](http://docs.python.org/2/library/stdtypes#dict.items)將項目作爲列表複製,而['dict.iteritems'](http:// docs .python.org/2/library/stdtypes#dict.iteritems)返回一個迭代器; 'dict.iteritems'更具記憶效率。 – falsetru