【问题标题】:For loop and addition methods with lists on Python 3Python 3 上带有列表的 for 循环和加法方法
【发布时间】: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


【解决方案1】:

我会将数字 1 传递给 x.append(),它应该在每个单元格中累积一个。

【讨论】:

    猜你喜欢
    • 2018-09-17
    • 2015-10-14
    • 2013-12-27
    • 2017-09-21
    • 2020-10-22
    • 2021-11-17
    • 2019-07-12
    • 2019-05-09
    • 2018-12-27
    相关资源
    最近更新 更多