2016-11-30 10 views
2

私は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]) 

これは、これを試してみてください

0

のPython 3でそれを行う方法です。

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 }