Python 替换元素 = 二维数组中的键

Python replace elements = key in 2D array

假设存在具有值的二维列表 [[0, 0], [1, 0]]

有没有办法循环遍历它,以便用 2 替换每个 0(例如)?

我的第一个方法如下,但是虽然更新了 l 的值,但列表中的条目没有更新。有什么想法吗?

for k in g:
     for l in k:
          if not l == 1:
               l = 2

您可以使用列表理解:

lst = [[0, 0], [1, 0]]

lst = [[2 if val == 0 else val for val in subl] for subl in lst]
print(lst)

打印:

[[2, 2], [1, 2]]

为循环变量赋值会更新它们的值,但不会修改原始列表。要修改列表,您需要直接引用其元素。下面的代码执行此操作并将列表中的所有 0 替换为 2。

l = [[0, 0], [1, 0]]
for i in range(len(l)): 
    for j in range(len(l[i])): 
        if l[i][j] == 0: 
            l[i][j] = 2