我已经声明了一个10 * 10的电路板阵列。我正在读取电路板上0,1和2的元素。看完电路板后看起来有点像(短版本4 * 4)
0 1 0 2
2 1 0 1
0 2 1 0
1 2 1 0
代码:
board = []
for i in xrange(0, 10)
board.append(raw_input())
现在我想将所有出现的0更改为1.我无法更改它..我应该怎么做..请编写修改后的代码..(将错误视为不可变)
感谢你得到的答案。我应该首先将列表转换为字符串,然后使用替换函数
答案 0 :(得分:1)
据我所知,你有一个清单,只想用1对替换所有0?如果是这样,您可以尝试将该列表转换为字符串并使用replace
方法。例如:board = str(board)
然后是board = board.replace('0','1')
。然后使用eval
内置函数转换回列表。但对于大型名单来说,这可能太慢了。
更新>>如果您不想使用字符串,您也可以编写代码:
如果它是2d列表,如:L = [[1, 1, 0], [0, 2, 1], [0, 0, 0]]
则:
for x in L:
for y in x:
if y == 0:
x[x.index(y)] = 1
如果它只是L = [1, 0, 2, 1, 0, 1]
这样的常见列表,那么:
for x in L:
if x == 0:
L[L.index(x)] = 1
答案 1 :(得分:0)
for i in xrange(10):
for j in xrange(10):
if board[i][j] == 0:
board[i][j] = 1
这应该有效。如果没有,请告诉我您如何创建board
表。