繁体   English   中英

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

[英]Why do I get […] when I append a list to the same list in python?

以下代码在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在这里试图做什么?

您已经在列表内创建了一个无限嵌套列表。 由于无法表示,因此出现[...]

看一下尝试打印每个值会发生什么:

>>> for item in a:
...     print item
... 
1
2
3
[1, 2, 3, [...]] # The whole list that we just iterated over :)

请参阅此处以进一步阅读。

您基本上是制作一个嵌套列表的列表(列表中的列表),然后将列表附加到自身上,从而创建一个无限嵌套的列表

例如:

>>> 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][...]是蟒蛇如何描绘这个想法

更多信息和示例在这里解释了这些无限嵌套的列表

列表被分配为指向原始列表的指针。 如果您确实希望将列表追加为元素3,则可以制作如下副本:

>>> a.append(a[:])
>>> print a
[1, 2, 3, [1, 2, 3]]

或者,如果你想要的元素a ,而是使用:

>>> a = a + a
>>> print a
[1, 2, 3, 1, 2, 3]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM