如何更改嵌套列表中的变量
How to change variable in nested list
我有一个嵌套列表,“l
”。我还有一个变量列表“loc
”(用于位置)。当我尝试编辑列表中的特定位置时,没有任何变化。
嵌套列表是8个列表,每个列表中有8个0。列表 loc 将类似于 [0,4] 或 [7,0] 或 [6,2] 等
这是我的程序的精简版,它重现了这个问题:
import random
board = [[0]*8 for a in range(8)]
for i in range(5):
loc = [random.randint(0,7),random.randint(0,7)]
board[loc[0]][loc[1]] == 1
print board
这会打印出来
[[0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0]]
列表没有变化。
我不明白为什么这不起作用,是列表有问题,还是我正在尝试更改它或其他原因。
如果我在控制台中 运行 你的代码,它会 returns False 5 次。发生这种情况是因为您使用了 ==
而不是 =
。所以你基本上是在做无用的比较而不是赋值。请在相应的行中更改它。
顺便说一句,由于 python2.7 已停产,请考虑使用 print(board)
而不是 print board
.
我有一个嵌套列表,“l
”。我还有一个变量列表“loc
”(用于位置)。当我尝试编辑列表中的特定位置时,没有任何变化。
嵌套列表是8个列表,每个列表中有8个0。列表 loc 将类似于 [0,4] 或 [7,0] 或 [6,2] 等
这是我的程序的精简版,它重现了这个问题:
import random
board = [[0]*8 for a in range(8)]
for i in range(5):
loc = [random.randint(0,7),random.randint(0,7)]
board[loc[0]][loc[1]] == 1
print board
这会打印出来
[[0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0]]
列表没有变化。
我不明白为什么这不起作用,是列表有问题,还是我正在尝试更改它或其他原因。
如果我在控制台中 运行 你的代码,它会 returns False 5 次。发生这种情况是因为您使用了 ==
而不是 =
。所以你基本上是在做无用的比较而不是赋值。请在相应的行中更改它。
顺便说一句,由于 python2.7 已停产,请考虑使用 print(board)
而不是 print board
.