Python 列表中的 […](省略号)是什么意思?

13 投票
1 回答
3993 浏览
提问于 2025-04-17 00:29

我刚刚运行了一个Python脚本,结果输出有点奇怪:

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

这个输出应该是一个包含多个列表和元组的列表。但是我不知道为什么会出现[...]。

那[...]是什么意思呢?

我觉得这不是一个空列表,因为空列表是[]。难道这些是重复的内容吗?

1 个回答

27

这是一个递归引用。你的列表里面包含了自己,或者说有某种循环。

举个例子:

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 并不是一个完整的列表序列化格式。

至于你为什么会遇到这个问题:我们不是神仙,无法在没有看到你代码的情况下解决问题。

撰写回答