Python中[...]是什么意思?

7
每当我运行代码时,与其得到一个包含一些对象的列表,我会得到 [...]。为了调试我的代码,我想知道它是什么意思。

https://dev59.com/A3RA5IYBdhLWcg3w8iol - xiº
@xi_ 这可能有关系,但并不完全是 OP 正在发生的情况。 - SuperBiasedMan
2个回答

14

这很可能是对对象本身的引用。例如:

In [1]: l = [0, 1]

In [2]: l.append(l)

In [3]: l
Out[3]: [0, 1, [...]]

以上代码中,列表l包含对它本身的引用。这意味着你可以无限地打印其中的元素(想象一下 [0, 1, [0, 1, [0, 1, [...]]]] 等等),这被使用 ... 限制。我认为,你在代码中错误地追加了值,导致了这个问题。

以下是一个更简洁的示例:

In [1]: l = []

In [2]: l.append(l)

In [3]: l
Out[3]: [[...]]

有趣的事情,l[2][2][2][2][2](等等)返回与仅使用l(上面的例子)相同的结果 :-) - adrianus
非常有帮助。谢谢! - Algunillo

2
>>> data = []
>>> data.append([1,3,4])
>>> data
[[1, 3, 4]]
>>> data.append([1,3,data])
>>> data
[[1, 3, 4], [1, 3, [...]]]
>>> data[0]
[1, 3, 4]
>>> data[1]
[1, 3, [[1, 3, 4], [...]]]
>>> data.append([1,2,data])
>>> data
[[1, 3, 4], [1, 3, [...]], [1, 2, [...]]]
>>> data[2]
[1, 2, [[1, 3, 4], [1, 3, [...]], [...]]]

然后事情就变得奇怪了。

非常有帮助。谢谢! - Algunillo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接