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'}