Python,字典复制和更新不起作用?

标签 python dictionary copy

为什么以下代码对 b 显示 None 而不是 {'a': 1, 'e': 2}? Python 2.7.3

>>>> d = {'a' :1 }
>>>> b = d.copy().update({'e':2})
>>>> print b
None
>>>> d.update({'c':3})
>>>> print d
{'a': 1, 'c': 3}

最佳答案

dict.update修改字典但返回 None。这就是为什么

b = d.copy().update({'e':2})

b设置为等于None,而

d.update({'c':3})

修改d

很多 Python 方法都是这样的。例如,list.sortrandom.shuffle 也修改一个对象并返回None。我认为 Python 这样做是为了阻止 long "Law-of-Demeter-scoffing" chains of references因为它们不会提高可读性,并且更难找到引发异常的位置。

关于Python,字典复制和更新不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20249004/

相关文章:

python - 如何从字典中删除键和值 float

python - 就地修改字典值

python - BS4 find_all 在空间中带有标签

python - 有没有办法在 Bokeh 图中拥有多个图例颜色文本?

python - Itertools.permutations 返回 <object> 而不是排列列表

c# - 动态创建一个具有所有相同类型和已知数量元素的元组

r - 第一个括号内的作业和完整的作业一样耗时?

c++ - 是否可以直接保留并复制到 std::string 中?

c# - 使用 .NET 进行文件备份的最佳方法

python - 从Python 3中的线程处理函数返回变量