在Python 2.7.1解释器中尝试了以下代码。
>>> a = [1, 2, 3]
>>> a.append(a)
>>> a
[1, 2, 3, [...]]
>>> a == a[-1]
True
>>> print a[-1]
[1, 2, 3, [...]]
任何人都可以解释一下python在这里尝试做什么吗?
答案 0 :(得分:3)
您已在列表中创建了无限嵌套列表。由于无法表示,因此出现[...]
。
看看如果您尝试打印每个值会发生什么:
>>> for item in a:
... print item
...
1
2
3
[1, 2, 3, [...]] # The whole list that we just iterated over :)
请参阅here进一步阅读。
答案 1 :(得分:2)
你基本上是一个嵌套列表列表(列表中的列表),你自己附加一个列表创建一个无限嵌套的列表
例如:
>>> a = [1,2,3]
>>> a.append(a)
>>> a
[1, 2, 3, [...]]
>>>
>>> a[3]
[1, 2, 3, [...]]
>>> a[3][3]
[1, 2, 3, [...]]
>>>
当a[3]
a[3][3]
显示嵌套列表中的下一个列表时a[3]
我在[...]
内获取列表{{1}}是python如何描述这个想法
解释这些无限嵌套列表的更多信息和示例here
答案 2 :(得分:0)
列表被指定为原始列表的指针。 如果你真的想要一个附加为元素3的列表,你可以制作这样的副本:
>>> a.append(a[:])
>>> print a
[1, 2, 3, [1, 2, 3]]
或者如果您想要a
的元素,请使用:
>>> a = a + a
>>> print a
[1, 2, 3, 1, 2, 3]