2024-04-19 21:46:05 发布
网友
为什么下面的列表理解表达式不起作用?你知道吗
[col1*col2 for (col1, col2) in zip(row1, row2) for (row1, row2) in zip(M,N)]
Python说:
NameError: name 'row1' is not defined
使用:
M = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] N = [[2, 2, 2], [3, 3, 3], [4, 4, 4]]
实际上,row1没有定义,row2也没有定义。你知道吗
row1
row2
让我们来简化一下您实际要做的事情:
for row1, row2 in zip(M, N): for col1, col2 in zip(row1, row2): result = col1*col2 print result
上面的代码运行良好,因为我们首先从zip(M, N)中选择了row1和row2。然后我们从zip(row1, row2)中选择col1和col2。你知道吗
zip(M, N)
zip(row1, row2)
col1
col2
因此,如果要将代码压缩到一行中,则必须遵循与上面相同的方法。因此,您的代码如下所示:
[col1*col2 for (row1, row2) in zip(M, N) for (col1, col2) in zip(row1, row2)]
实际上,
row1
没有定义,row2
也没有定义。你知道吗让我们来简化一下您实际要做的事情:
上面的代码运行良好,因为我们首先从
zip(M, N)
中选择了row1
和row2
。然后我们从zip(row1, row2)
中选择col1
和col2
。你知道吗因此,如果要将代码压缩到一行中,则必须遵循与上面相同的方法。因此,您的代码如下所示:
相关问题 更多 >
编程相关推荐