0

同じキーを持つ 2 つの辞書があります。

d={123:'bla', 456: blabla}
e={123:'bla', 456:''}

ディクショナリ e には空の値がいくつかあります。この場合、ID が同じであれば、空の値を d の値に置き換えたいと思います。

私はこのようなものを探しています:

if d.keys()==e.keys():
    e.values==d.values()
print e

ただし、単一のキーを比較して値を更新する Python ドキュメントには何も見つかりませんでした。

誰かが私を助けたり、何かを指摘したりできますか?

ありがとう :)

4

2 に答える 2

0

dict内包表記を使用することもできます。

f = {k:(e[k] or d[k]) for k in e.keys()}

or最初の項目が空の場合、2番目の項目に評価されます。もちろん、両方が同じキーを使用していることを確認する必要があります。

于 2012-07-16T09:21:32.590 に答える
0

異なる値を上書きしても構わない場合は、直接更新できます

e.update(d)

または、空の値を含むものだけを上書きすることを確認したい場合は、辞書を反復処理してそれらを見つけ、選択的に更新する必要があります

# Python 2.x
for key, value in e.iteritems():
    if value == '':
        e[key] = d.get(key)

# Python 3.x
for key, value in e.items():
    if value == '':
        e[key] = d.get(key)
于 2012-07-16T09:19:37.440 に答える