问题描述
想象我有
dict1 = {'uno':[1,2,3],'dos':[4,5,6]}
和
dictA = {'AA':'ZZZZZ'}
这有效:
dict1.update(dictA)
结果:{'uno': [1,'dos': [4,6],'AA':'ZZZZZ'}
但这不起作用:
B = dict1.update(dictA)
结果不是错误,但结果为None,这会使该行为(IMMO)变得奇怪而危险,因为代码不会崩溃。
那为什么不返回None并且不给出错误?
注意: 看起来要走的路是:
C = dict1.update(dictA)
B = {}
B.update(dict1)
B.update(dictA)
B
C不存在 B可以啦
解决方法
使用update
时,它将更新dict1
作为参数的字典并返回None
:
Docs:
dict。更新([映射]) 映射 需要。另一个字典对象或key:value对>(长度为2的iterables)的可迭代对象。如果指定了关键字参数,则字典>>然后使用这些key:value对进行更新。 返回值 没有
代码:
dict1 = {'uno':[1,2,3],'dos':[4,5,6]}
dict1.update({'tres':[7,8,9]})
# {'uno': [1,'dos': [4,6],'tres': [7,9]}
print(dict1)