-3

これまでのところ、私のコードは次のようになります。

辞書 d1 と d2 を指定して、次のプロパティを持つ新しい辞書を作成します。d1 の各エントリ (a、b) について、d2 にエントリ (b、c) がある場合、エントリ (a、c)新しい辞書に追加されました。たとえば、d1 が {2:3, 8:19, 6:4, 5:12} で、d2 が {2:5, 4:3, 3:9} の場合、新しい辞書は {2:9 になります。 , 6:3} 新しい辞書を変数 d3 に関連付けます

d3 ={} 
for i in d1:
    for i in d2:
        if d1.get(i,default=none) in d2:
            d3[d1] = d2.get(i,default = None)
4

2 に答える 2

1

Python はこれを見事に表現できます。残念ながら、それは宿題であり、おそらく辞書内包表記や、「教師」が与えるその他の制限を使用することはできません。

>>> d1 = {2:3, 8:19, 6:4, 5:12}
>>> d2 = {2:5, 4:3, 3:9}
>>> d3 = {a:d2[b] for a, b in d1.items() if b in d2}
>>> d3
{2: 9, 6: 3}

Python2.5 または Python2.6 の場合、ジェネレータ式を使用します。dict()

d3 = dict((a, d2[b]) for a, b in d1.items() if b in d2)

2.4 については、@KP の回答を参照してください

于 2013-07-19T01:20:25.853 に答える
0

または、ワンライナーが好きな場合:

d3 = dict([(k, d2[v]) for k, v in d1.items() if v in d2])
于 2013-07-19T01:20:57.437 に答える