Python类型错误:' int'对象不是可迭代的列表理解

时间:2016-07-15 16:15:33

标签: python python-3.x list-comprehension

当我尝试运行此代码时

check = [sum(board[r[0]] + board[r[1]] + board[r[2]]) for r in test]
    for row in check:
        if row == win:
            return True

我收到错误

TypeError: 'int' object is not iterable

然而,当我运行以下代码时,它以更长的格式执行相同的操作,它运行流畅并且不会返回错误

    for row in winConditions:
        checkA = board[row[0]]
        checkB = board[row[1]]
        checkC = board[row[2]]
        if checkA + checkB + checkC == int(win):
           return True

我仍然熟悉列表推导,所以我不确定这是不可能的,或者只是我错过了一些错误。

1 个答案:

答案 0 :(得分:1)

您在sum上拨打board[r[0]] + board[r[1]] + board[r[2]](这是一个号码)。 sum期望至少有两个数字或一个iterable作为其参数 - 因为你只传递一个参数,它期望它是可迭代的,因此该异常。