了解python中列表数组的创建

了解python中列表数组的创建,python,python-3.x,for-loop,Python,Python 3.x,For Loop,我正在阅读关于如何在python中声明矩阵的内容,我发现了这个问题 这是我的工作,但我部分理解这里所做的,我不理解的是两个循环中“for”之前的参数…所以我去我的终端,逐个测试其中的部分,所以当我键入: 0 for x in range(w): 我收到: 文件“”,第1行 所以我试着: [0 for x in range(w)] for y in range(h): [0 for x in range(w)] 收到: 文件“”,第1行 [0代表范围内的x(w)]代表范围内的y(h): 所以

我正在阅读关于如何在python中声明矩阵的内容,我发现了这个问题

这是我的工作,但我部分理解这里所做的,我不理解的是两个循环中“for”之前的参数…所以我去我的终端,逐个测试其中的部分,所以当我键入:

0 for x in range(w):
我收到:

文件“”,第1行

所以我试着:

[0 for x in range(w)] for y in range(h):
[0 for x in range(w)]
收到:

文件“”,第1行 [0代表范围内的x(w)]代表范围内的y(h):

所以我试着:

[0 for x in range(w)] for y in range(h):
[0 for x in range(w)]

这是工作

那么,为什么循环在我放置括号时工作,而没有括号时不工作呢


提前感谢。

这是python中的列表理解。类似的,还有集合理解,听写理解。它使用
for
循环中的元素来构造列表。比如

>>> [2*i for i in range(10)]
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
>>> [i for i in range(10) if i % 2 == 1]
[1, 3, 5, 7, 9]
>>> [0 for _ in range(10)]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
>>> [[i for i in range(j)] for j in range(5)]
[[], [0], [0, 1], [0, 1, 2], [0, 1, 2, 3]]
>>> {i : chr(65+i) for i in range(5)}
{0: 'A', 1: 'B', 2: 'C', 3: 'D', 4: 'E'}


  • 您正在查看a(请查看链接的5.1.4.嵌套列表理解)。同样的任务也可以完成,它不涉及括号,但生成器不创建列表。

    您需要括号,以便python解释器以正确的顺序处理括号内的操作。否则,将无法正确解释该语句。

    列表理解将在几个SO主题上进行解释。这里有一个。谢谢你给我小费,兄弟!