我有一段很短的代码,但我很难理解Python解释器是如何工作的。我用这个列表创建了一个列表和一个字典。
lista = [1,2,3]
dict = {1: lista}
print(lista)
print(dict)
这是输出,这里没有什么奇怪的:
[1, 2, 3]
{1: [1, 2, 3]}
然而,如果我更改列表,使其现在包含词典。。。
lista = [1, dict]
print(lista)
print(dict)
我得到了这个输出:
[1, {1: [1, 2, 3]}]
{1: [1, 2, 3]}
该列表已更新,我希望词典会有更新列表的副本,但这并没有发生。我意识到我正在创建一个循环,我认为这个循环是以这种方式处理的,所以我想知道这是由Python语言或Python解释器实现定义的
dict仍然包含对原始列表的引用。lista = [1, dict]
不修改该列表;它仅使名称CCD_ 2引用新列表。
你可能想阅读https://nedbatchelder.com/text/names.html以更深入地探索Python变量是如何工作的。