蟒蛇int对象不是可迭代错误试图运行下面的代码

问题描述:

import sys 
import itertools 
arr = [[int(arr_temp) for arr_temp in input().strip().split(' ')] for _ in range(6)] 
print(max([sum(arr[i][j:j+3])+sum(arr[i+1][j+1])+sum(arr[i+2][j:j+3]) for i, j in itertools.product(range(4), repeat=2)])) 

我收到以下错误蟒蛇int对象不是可迭代错误试图运行下面的代码

Traceback (most recent call last): 
    File "solution.py", line 6, in <module> 
    print(max([sum(arr[i][j:j+3])+sum(arr[i+1][j+1])+sum(arr[i+2][j:j+3]) for i, j in itertools.product(range(4), repeat=2)])) 
    File "solution.py", line 6, in <listcomp> 
    print(max([sum(arr[i][j:j+3])+sum(arr[i+1][j+1])+sum(arr[i+2][j:j+3]) for i, j in itertools.product(range(4), repeat=2)])) 
TypeError: 'int' object is not iterable 
+2

将您的代码拆分为不同的可调试行,并查看错误发生的位置。 – DeepSpace

+0

谢谢,应该删除print语句中的第二个sum函数 –

sum(arr[i+1][j+1]) 

上面的代码是错误的,arr[i+1][j+1]是一个整数,而不是一个列表,这是为什么会得到TypeError: 'int' object is not iterable

顺便说一句,@ deepspace取得了很好的建议,我们希望能写一些Python的代码,而是写的代码更重要这很容易调试和重构。