发出将列表中一行中的所有元素相加并求和的问题

时间:2018-06-30 06:35:54

标签: python

我到达这里的问题似乎很简单,但是我一直在寻找适合自己情况的解决方案,但找不到任何东西。基本上,我试图查看给定的网格是否是Sudoku的有效/可解决游戏。我相信我解决该问题的方法是正确的,并且我已经能够获取一列中所有数字的总和并检查它是否等于!=45。我遇到的问题是当我尝试将每个数字相加时,它给了我错误:

  

TypeError:“ int”对象不可迭代

我对为什么收到此错误感到困惑。我仍在学习python,但是我对Java很满意。我在Java中用于执行此操作的代码有些相关,因此可能是问题所在。让我知道你们看到的东西:

for b in range(0,9):
    for x in range(0,9):
        numHolder+=grid[b][x]
        if sum(numHolder) != 45:
            return False
    numHolder=[]

2 个答案:

答案 0 :(得分:1)

在列表上使用+=时,它将尝试将操作员右侧列表中的所有项目添加到左侧列表中。但是,int不是列表,因此您将不得不使用numHolder.append(grid[b][x])

答案 1 :(得分:-1)

if numHolder != 45:而不是if sum(numHolder) != 45:sum函数需要一个listtuple等,但不能有单个值。

更新:如果numHolder是list,则应输入:

for b in range(0,9):
    for x in range(0,9):
        numHolder.append(grid[b][x])
        if sum(numHolder) != 45:
            return False
    numHolder=[]