python中的[...]是什么意思?
What is the meaning of [...] in python?
每当我 运行 我的代码时,我都会得到 [...]
而不是其中包含一些对象的列表。我想知道这是什么意思,以便调试我的代码。
这很可能是对对象本身的引用。示例:
In [1]: l = [0, 1]
In [2]: l.append(l)
In [3]: l
Out[3]: [0, 1, [...]]
在上面,列表 l
包含对自身的引用。这意味着,您可以无休止地打印其中的元素(想象 [0, 1, [0, 1, [0, 1, [...]]]]
等等),这是使用 ...
IMO 限制的,您在代码中的某处错误地附加了值,这导致了这种情况。
一个更简洁的例子:
In [1]: l = []
In [2]: l.append(l)
In [3]: l
Out[3]: [[...]]
>>> 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, [...]], [...]]]
然后就变得奇怪了
每当我 运行 我的代码时,我都会得到 [...]
而不是其中包含一些对象的列表。我想知道这是什么意思,以便调试我的代码。
这很可能是对对象本身的引用。示例:
In [1]: l = [0, 1]
In [2]: l.append(l)
In [3]: l
Out[3]: [0, 1, [...]]
在上面,列表 l
包含对自身的引用。这意味着,您可以无休止地打印其中的元素(想象 [0, 1, [0, 1, [0, 1, [...]]]]
等等),这是使用 ...
IMO 限制的,您在代码中的某处错误地附加了值,这导致了这种情况。
一个更简洁的例子:
In [1]: l = []
In [2]: l.append(l)
In [3]: l
Out[3]: [[...]]
>>> 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, [...]], [...]]]
然后就变得奇怪了