我在Python中遇到了一个非常奇怪的事情。我尝试将列表引用添加到列表本身中。下面的代码或许能更好地展示我的意思。我正在使用IDLE编辑器(交互模式)。
>>>l=[1,2,3]
>>>l.append(l)
>>>print(l)
[1,2,3,[...]]
>>>del l[:-1]
>>>print(l)
[[...]]
目前输出结果符合预期。但当我这样做时。
y=l[:]
print(y)
对我来说,输出应该是
[[...]]
但这是
[[[...]]]
显然,它并没有创建列表的副本,而是将对列表的引用放入了y中。
y[0]是l返回True。我似乎找不到一个好的解释。有什么想法吗?