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
假设存在具有值的二维列表
[[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