【发布时间】:2014-10-26 19:05:53
【问题描述】:
我正在创建一个带有回溯的数独求解器。现在,我需要为每个单元格添加 1。我正在使用“for”循环:
board = [[[0],[0],[0],[0]],
[[0],[0],[0],[0]],
[[0],[0],[0],[0]],
[[0],[0],[0],[0]]]`
a=0
b=0
x=board[a][b]`
for i in x:
x.append(i+1)
y = [sum(x)]
print(y)
break
board[a][b] = y
如果我在板上有一个数字,比如“2”,它会执行(1+1)+(1+1) +1 的运算,并返回 5 而不是 3。我从 4 [(1+1)+(1+1)+(1+1)+(1+1)+1)] 中得到 9,等等。
我正在考虑通过将“x”从列表转换为整数,然后加 1,然后在列表中重新转换来解决它。
还有更高效、更省时的想法吗?
(如果可能,我想保留“董事会”的列表结构,但我当然愿意接受任何建议。)
编辑:
如果我有这个:
board = [[[0],[3],[2],[0]],
[[0],[0],[0],[0]],
[[0],[0],[0],[0]],
[[0],[0],[0],[0]]]`
我希望它像这样结束:
board = [[[1],[4],[3],[1]],
[[1],[1],[1],[1]],
[[1],[1],[1],[1]],
[[1],[1],[1],[1]]]`
相反,我得到:
board = [[[1],[7],[5],[1]],
[[1],[1],[1],[1]],
[[1],[1],[1],[1]],
[[1],[1],[1],[1]]]`
解决方案:
for i in x:
x.append(1) #Quite simple
谢谢詹姆斯!
【问题讨论】:
-
澄清一下,您希望所有单元格在循环后都包含 1 而不是 0?
-
在第一种情况下是的,这就是它的作用。但是当涉及到数字已经不是 0 的单元格时,我会得到错误的值。
标签: python for-loop integer addition