0

我有两个具有相同键的字典:

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

如果您不介意用

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 回答
0

您还可以使用 dict 理解:

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

or如果第一项为空,则计算第二项。当然,您必须确保两者都使用相同的密钥。

于 2012-07-16T09:21:32.590 回答