当我尝试运行此代码时
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
我仍然熟悉列表推导,所以我不确定这是不可能的,或者只是我错过了一些错误。
答案 0 :(得分:1)
您在sum
上拨打board[r[0]] + board[r[1]] + board[r[2]]
(这是一个号码)。 sum
期望至少有两个数字或一个iterable作为其参数 - 因为你只传递一个参数,它期望它是可迭代的,因此该异常。