我有两个具有相同键的字典:
d={123:'bla', 456: blabla}
e={123:'bla', 456:''}
字典 e 有一些空值,如果是这种情况并且 ID 相同,我想用 d 中的值替换空值。
我正在寻找这样的东西:
if d.keys()==e.keys():
e.values==d.values()
print e
但是,我在 Python 文档中找不到任何比较单个键和更新值的内容。
有人可以帮助或指点我吗?
谢谢 :)
如果您不介意用
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)
您还可以使用 dict 理解:
f = {k:(e[k] or d[k]) for k in e.keys()}
or
如果第一项为空,则计算第二项。当然,您必须确保两者都使用相同的密钥。