列表中的[...](省略号)在Python中意味着什么?

时间:2011-08-28 19:07:49

标签: python

我刚刚获得了一些python脚本的奇怪输出:

[[(7, 6), (6, 4), (7, 2)], [...], [...], [...], [(7, 6), (8, 4), (7, 2)], [...], [...], [...], [...], [...], [...], [...]]

输出应该是元组列表的列表。但我不知道为什么会出现。

什么意思?

我不认为它是一个空列表,因为空列表是[]。这些可能是重复的吗?

1 个答案:

答案 0 :(得分:26)

这是一个递归参考。你的清单包含自己,或者至少存在某种循环。

示例:

x = []
x.insert(0, x)
# now the repr(x) is '[[...]]'.

列表的内置repr检测到这种情况,并且不会尝试在子列表上递归(正常情况下),因为这会导致无限递归。

请注意...并不一定告诉您引用了哪个列表:

y, z = [], []
x = [y, z]
y.insert(0, z)
z.insert(0, y)
# looks the same as it would if y contained y and z contained z.

所以repr并不是列表的完整序列化格式。

至于为什么要获得它们:我们不是通灵的,除非我们看到代码,否则无法解决代码问题。