Python 通过更新现有dict创建新dict

Python 通过更新现有dict创建新dict,python,python-2.7,dictionary,Python,Python 2.7,Dictionary,我想通过更新现有词典来创建一个新词典。这表现为假定的: x = {'a': 1} x.update({'a': 2}) 但为什么下面的结果是非类型 ({'a': 1}).update({'a': 2}) 因为update,就像Python中的所有变异方法一样,都不返回任何值。Python标准库中的所有就地操作都返回None,dict.update()也不例外 您不能创建dict文本并调用.update(),然后期望它返回更新后的dict对象,否 实际上,您正在这样做: tmp = {'a':

我想通过更新现有词典来创建一个新词典。这表现为假定的:

x = {'a': 1}
x.update({'a': 2})
但为什么下面的结果是非类型

({'a': 1}).update({'a': 2})

因为
update
,就像Python中的所有变异方法一样,都不返回任何值。

Python标准库中的所有就地操作都返回
None
dict.update()
也不例外

您不能创建
dict
文本并调用
.update()
,然后期望它返回更新后的
dict
对象,否

实际上,您正在这样做:

tmp = {'a': 1}
result = tmp.update({'a': 2})
del tmp
并期望
result
成为字典

您可以使用:

不过,还是要一本合并词典。或者,对于更实用的版本:

copy = dict(original, foo='bar') 
创建字典副本并设置一些额外的键(替换该键以前的任何值)

在Python 3.5及更新版本中,您将使用:

copy = {**original, 'foo': 'bar'}

thx,这不仅解决了我的问题,也解释了我做错了什么
copy = {**original, 'foo': 'bar'}