2016-07-15 104 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需要至少兩個數字或一個可迭代的參數 - 因爲您只傳遞一個參數,所以期望它是可迭代的,因此該異常。

相關問題