【发布时间】:2023-03-20 22:21:01
【问题描述】:
我想创建一个 m x n 维度的 0 嵌套数组。稍后我将遍历数组并分配值。
如果我这样做:
l = [[0] * 3] * 3
for i in range(3):
for j in range(3):
if i == 0:
l[i][j] = 1
我的条件似乎并不适用,并且无论 i 是什么,每个值都分配给列表。我知道问题是由复制第一行代码中的 0 列表引起的。所以我像这样对每个内部列表进行了切片来修复它:
l = [[0] * 3] * 3
for i in range(3):
l[i] = l[i][:]
for j in range(3):
if i == 0:
l[i][j] = 1
这感觉是多余的,我想知道是否有更好的方法来初始化嵌套列表。
【问题讨论】:
-
请注意,如果您使用的是
numpy,这将是numpy.zeros((m, n))
标签: python