有一本字典:
item = {
'title': '',
'photo': [],
'location': '',
}
然后另一个字典使用它:
user = {
'item': item,
'list': []
}
然后在脚本执行期间编辑后者:
user['item']['title'] = 'Title'
结果,两个字典都发生了变化,但是如何使第一个保持不变呢?
有一本字典:
item = {
'title': '',
'photo': [],
'location': '',
}
然后另一个字典使用它:
user = {
'item': item,
'list': []
}
然后在脚本执行期间编辑后者:
user['item']['title'] = 'Title'
结果,两个字典都发生了变化,但是如何使第一个保持不变呢?
在 Python 中,变量不存储对象本身,而是对它们的引用。在这种情况下,也就是
item
对与 相同的字典的引用user['item']
。而且,如果您通过一个引用更改对象,那么通过第二个引用,您可以理解,它也会发生变化。如果您想避免这种情况,请使用字典方法dict.copy
或copy.deepcopy
. 然后是单词is
,它检查两个引用是否指向同一个对象。但更好用
deepcopy
的是,它也复制嵌套列表。您只需要制作 item 的副本,以便它们成为不同的对象: