Python 列表中的 […](省略号)是什么意思?
我刚刚运行了一个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
并不是一个完整的列表序列化格式。
至于你为什么会遇到这个问题:我们不是神仙,无法在没有看到你代码的情况下解决问题。