8

次の方法で 2 つの辞書を構成する内包表記を作成しようとしています。

d1 = {1:'a',2:'b',3:'c'}
d2 = {'a':'A','b':'B','c':'C'}
result = {1:'A',2:'B',3:'C'}

つまり、結果のディクショナリは、最初の値が 2 番目のキーと等しいペアごとに、最初のキーと 2 番目の値から形成されます。

これは私がこれまでに得たものです:

{ k1:v2 for (k1,v1) in d1 for (k2,v2) in d2 if v1 == k2 }

しかし、うまくいきません。私はPythonが初めてなので、これが本当に意味があるかどうかはわかりません。ちなみに、私はpython 3.3.2を使用しています。

前もって感謝します。

4

4 に答える 4

2

d1のすべての値が の有効なキーではない場合でも、この方法は機能しd2ます。

 {k1:d2[d1[k1]] for k1 in d1 if d1[k1] in d2}
于 2013-07-24T23:32:12.667 に答える