【发布时间】:2020-05-05 14:53:56
【问题描述】:
我只是想更改嵌套字典中的值。
第一个字典是空的,第二个是填充的。 当我尝试更改嵌套字典中一项的值时,其他项具有相同键的值也已更改。
name = dict()
work = {"hour" : 4, "age":21}
name['bob'] = work
name['harry'] = work
name['bob']['hour'] = 7
现在,如果我打印新的 name 字典,我会得到这个:
{'bob': {'hour': 7, 'age': 21}, 'harry': {'hour': 7, 'age': 21}}
我想遇到这种情况:
{'bob': {'hour': 7, 'age': 21}, 'harry': {'hour': 4, 'age': 21}}
为什么它会改变 harry 的字典中的小时?
【问题讨论】:
-
使用
name['bob'] = work.copy()和name['harry'] = work.copy()。它将传递引用而不是值。 -
它们都是对同一个值的引用。你会想要复制它。
标签: python dictionary