语法错误:创建一个用零填充的二维列表
Posted
技术标签:
【中文标题】语法错误:创建一个用零填充的二维列表【英文标题】:Syntax Error:Creating An 2d List Filled With Zero 【发布时间】:2022-01-02 13:09:01 【问题描述】:如何在没有任何附加库/模块的情况下初始化一个用零填充的 2D 列表
这是我的尝试
table = [0 for i in range(amount + 1)[0 for j in range(len(coins))]]
它适用于一维列表:矢量但在二维情况下失败
代码:
table = [0 for i in range(amount + 1)]
邮编:[0,0,0,0,0,0,0,0,0,0,0,0]
代码:
table = [0 for i in range(amount + 1)[0 for j in range(len(coins))]]
邮编:Syntax Error
【问题讨论】:
【参考方案1】:您将内在理解部分置于错误的位置。试试:
rows, cols = 4, 5
table = [[0 for _ in range(cols)] for _ in range(rows)]
print(table)
# [[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]]
首先,_
这并不奇怪;它只是一个虚拟名称,我们不在乎。例如,我们可以将其命名为 i
,并且没有任何变化。
[... for _ in range(rows)]
创建一个长度为rows
的列表,其中的项目由...
给出。现在...
是[0 for _ in range(cols)]
,即长度为cols
的零列表。因此,结果是[0, 0, ..., 0]
的列表(长度为row
)。
【讨论】:
它起作用了,但你能解释一下是怎么做的吗? @CodeBhiErrorBhi 我已经添加了一些解释。以上是关于语法错误:创建一个用零填充的二维列表的主要内容,如果未能解决你的问题,请参考以下文章