【发布时间】:2013-08-04 22:59:38
【问题描述】:
为什么dict(k=4, z=2).update(dict(l=1)) 返回None?它似乎应该返回dict(k=4, z=2, l=1)?我正在使用 Python 2.7。
【问题讨论】:
-
为什么人们投票反对?对我来说这是非常有益的。
标签: python python-2.7 dictionary
为什么dict(k=4, z=2).update(dict(l=1)) 返回None?它似乎应该返回dict(k=4, z=2, l=1)?我正在使用 Python 2.7。
【问题讨论】:
标签: python python-2.7 dictionary
.update() 方法就地改变字典并返回None。字典本身被修改了,不需要返回修改后的字典。
先分配字典:
a_dict = dict(k=4, z=2)
a_dict.update(dict(l=1))
print a_dict
这有明确的记录,请参阅dict.update() method documentation:
使用其他键/值对更新字典,覆盖现有键。返回
None。
【讨论】:
【讨论】:
为了完成,如果您确实想返回字典的修改版本,而不修改原始版本,您可以这样做:
original_dict = {'a': 'b', 'c': 'd'}
new_dict = dict(original_dict.items() + {'c': 'f', 'g': 'h'}.items())
这将为您提供以下内容:
new_dict == {'a': 'b', 'c': 'f', 'g': 'h'}
original_dict == {'a': 'b', 'c': 'd'}
【讨论】: