2016-07-15 74 views
0

当我尝试运行此代码Python类型错误:“诠释”对象不是可迭代列表理解

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 

我仍然熟悉机智h列表理解,所以我不确定这是不可能的,还是只是我错过了一些错误。

+2

这不是SQL,你不需要'sum'函数。 –

+1

删除'sum('和')'它应该可以工作。还要检查代码示例中的缩进;当你在Stack Overflow上提出有关Python的问题时,正确的缩进是**必不可少的**。 –

回答

1

你打电话sumboard[r[0]] + board[r[1]] + board[r[2]](这是一个数字)。 sum需要至少两个数字或一个可迭代的参数 - 因为您只传递一个参数,所以期望它是可迭代的,因此该异常。

相关问题