当我在python中将列表附加到同一列表时,为什么会得到[?]?

时间:2013-08-26 06:50:14

标签: python python-2.7

在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在这里尝试做什么吗?

3 个答案:

答案 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]