我想通过更新现有词典来创建新词典。这表现为假设:
x = {'a': 1}
x.update({'a': 2})
但为什么以下结果会产生NoneType?
({'a': 1}).update({'a': 2})
答案 0 :(得分:2)
Python标准库中的所有就地操作返回None
,dict.update()
也不例外。
您无法创建dict
文字并在其上调用.update()
,并希望它返回更新的dict
对象,否。
你基本上是这样做的:
tmp = {'a': 1}
result = tmp.update({'a': 2})
del tmp
并期望result
成为字典。
你可以使用:
dict({'a': 2}, **{'a': 2})
然而,并获得合并的字典。或者,对于更实用的版本:
copy = dict(original, foo='bar')
创建字典副本并设置一些额外的键(替换该键的任何先前值)。
答案 1 :(得分:1)
因为update
和Python中的所有变异方法一样,返回None。