为什么单独添加一个列表会创建一个无限列表

2023-12-01

l = [1, 2]
l.append(l)
>>>l
[1, 2, [...]] #l is an infinite list

为什么这会创建一个无限列表而不是创建:

l = [1, 2]
l.append(l)
>>>l
[1, 2, [1, 2]]

当你这样做时:

l.append(l)

a 参考列出l被附加到列表中l:

>>> l = [1, 2]
>>> l.append(l)
>>> l is l[2]
True
>>>

换句话说,您将列表放在其自身内部。这会创建一个无限引用循环,表示为[...].


要执行您想要的操作,您需要附加一个copy列表中的l:

>>> l = [1, 2]
>>> l.append(l[:])  # Could also do 'l.append(list(l))' or 'l.append(l.copy())'
>>> l
[1, 2, [1, 2]]
>>> l is l[2]
False
>>>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么单独添加一个列表会创建一个无限列表 的相关文章

随机推荐