获取TypeError:“ int”对象不可下标

时间:2020-10-06 06:21:12

标签: python python-3.x

def hourglassSum():
    for i in range(0,6):
        arr1=map(int,input().split())
        arr=list(arr1)
    sum=[]
for i in range(len(arr)-2):
        for j in range(len(arr)-2):
            sum.append(arr[i][j]+arr[i][j+1]+arr[i][j+2]+arr[i+1][j]+arr[i+2][j]+arr[i+2][j+1]+arr[i+2][j+2])

    maxi=max(sum)
    print(maxi)

hourglassSum()

此代码显示以下错误:

TypeError: 'int' object is not subscriptable

如何解决?

1 个答案:

答案 0 :(得分:0)

我怀疑这就是您要寻找的东西

def hourglassSum():
    arr = []
    for i in range(0,6):
        arr1=map(int,input().split())
        arr.append(list(arr1))
    sum=[]
    for i in range(len(arr)-2):
        for j in range(min(len(arr[i]), len(arr[i+1]), len(arr[i+2]))-2):
            sum.append(arr[i][j]+arr[i][j+1]+arr[i][j+2]+arr[i+1][j]+arr[i+2][j]+arr[i+2][j+1]+arr[i+2][j+2])

    maxi=max(sum)
    print(maxi)

两个注意事项:

(1)您要保留第一个循环的每次迭代,您所做的就是每次迭代都覆盖您的变量

(2)在遍历基本列表的元素的不同元素时-始终确保您不会遇到超出范围的索引异常-我想您的方法是放入6x6元素-因此这只是为了减轻最终差异