问题:添加列表中一行中的所有元素并获取总和

2024-09-30 10:27:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我在这里遇到的问题似乎很简单,但我一直在寻找一个解决方案,在我的情况下,没有找到任何东西。基本上,我想看看给出的网格是否是一个有效/可解的数独游戏。我相信我的解决方法是正确的,我已经能够得到一列中所有数字的总和,并检查它是否正确!=45.我遇到的问题是,当我尝试将一行中的每个数字相加时,会出现以下错误:

TypeError: 'int' object is not iterable

我不明白为什么我会犯这个错误。我仍在学习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=[]

Tags: 方法in网格游戏for错误情况range
2条回答

在列表上使用+=时,它会尝试将运算符右侧列表中的所有项添加到左侧列表中。但是,int不是一个列表,因此您必须使用numHolder.append(grid[b][x])

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=[]

相关问题 更多 >

    热门问题