【发布时间】:2019-06-01 10:47:14
【问题描述】:
如果我运行以下代码
data = [[1,2],[3,4],[5,6]]
for x in data:
print(x[0])
for x[0] in data:
print(x)
我得到以下输出
1
3
5
[[1, 2], 6]
[[3, 4], 6]
[[...], 6]
我最终得到了一个包含[[...], 6] 的列表,但是这个[...] 列表是什么?
它的行为不正常,因为调用y = [[...], 6] 然后下面的语句显示[...] 是0
>>> print(y)
[[Ellipsis], 6]
>>> print(y[0])
[0]
但是,当我在顶部运行代码并键入以下语句时,结果没有意义:
>>> print(x)
[[...], 6]
>>> print(x[0])
[[...], 6]
>>> print(x[0][0])
[[...], 6]
>>> print(x[0][0][0])
[[...], 6]
但不知何故,这两个结果都是 6
>>> print(x[1])
6
>>> print(x[0][1])
6
回顾问题:这怎么可能,[...] 代表什么,顶部的 for 循环如何创建这样的列表?
【问题讨论】:
-
奇怪的是我在搜索中找不到那个问题,它似乎完美地回答了这个问题。唯一没有回答的问题是 for 循环是如何创建这样一个列表的? @jonrsharpe
-
因为循环的每一步都将下一个元素从
x分配给x[0]。这两个循环不相同。
标签: python python-3.x