2016-11-30 22 views
2

我有兩個字典。就像這樣:使用不同字典中的值連接字典

d1 = {A: 1, B:2, C:3} 
d2 = {1: xx, 2:xxx, 3:xxxx} 

我寫了一個代碼,比較兩種:

for k, v in d1.iteritems(): 
    for l, m in d2.iteritems(): 
     if l == v: 
      print k+'\t'+v+'\t'+m 

和打印像這樣的表:

A 1 xx 
B 2 xxx 
C 3 xxxx 

建議喜歡營造一種new_dictionary被接受。

+0

我忘了提及d2比d1更多元素。 –

回答

3
for k, v in d1.iteritems(): 
    if v in d2: 
     print('{}\t{}\t{}'.format(k, v, d2[v])) 
+0

它給出了衝突,因爲d2比d1有更多的元素。我不想要d2中的超出元素。你可以幫幫我嗎? –

+0

@FelipeLira當然,試試我更新的答案。 – lucasnadalutti

0
for k, v in d1.items(): 
    print(k, v, d2[v]) 

這是如何做到這一點在Python 3

0

試試這個:簡單和容易。

for i in d1: 
    if d1[i] in d2: 
     print i,d1[i],d2[d1[i]] 
+0

它告訴我一個錯誤。可能是因爲兩個字典中的元素數量不同。編輯了 –

+0

。現在就試試。 –

1

「接受建議喜歡創建new_dictionary」。

print {key : [d1[key], d2[d1[key]]] for key in d1 if d1[key] in d2 }