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

2024-04-26 08:03:01 发布

您现在位置:Python中文网/ 问答频道 /正文

在python2.7.1解释器中尝试了以下代码。你知道吗

>>> a = [1, 2, 3]
>>> a.append(a)
>>> a
[1, 2, 3, [...]]
>>> a == a[-1]
True
>>> print a[-1]
[1, 2, 3, [...]]

有人能解释一下python在这里要做什么吗?你知道吗


Tags: 代码true解释器printappend
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]

你基本上是在创建一个嵌套列表(列表中的列表)的列表,然后在列表的后面添加一个列表,创建一个无限嵌套的列表

例如:

>>> 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]中的列表[...]就是python描述这个想法的方式

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

您已经在列表中创建了一个无限嵌套列表。因为它不能被表示,[...]出现了。你知道吗

看看如果您尝试打印每个值会发生什么:

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

请参阅here以进一步阅读。你知道吗

相关问题 更多 >