小白入门常见错误python:TypeError: ‘generator‘ object is not subscriptable (萌新踩雷!!!)

小白入门常见报错类型python之一:TypeError: ‘generator’ object is not subscriptable (踩雷!!!)

话不多说,上代码:

报错:TypeError: ‘generator’ object is not subscriptable 的解决方法

报错截图:

在这里插入图片描述

源代码截图:

在这里插入图片描述

源代码:

#Tools: Pycharm 2017.3.2 
_author_ = ' Hermione'
m,n=map(int,input().split())
a=[]
count=0
for i in range(m):
    s=input()
    a.append(int(b) for b in s.split())
for i in range(1,m-1):
    for j in range(1,n-1):
        if a[i][j]>a[i+1][j] and a[i][j]>a[i][j+1] and a[i][j]>a[i-1][j] and a[i][j]>a[i][j-1]:
            print("{} {} {}".format(a[i][j],i+1,j+1))
            count+=1
if count==0:
    print("{} {} {}".format("None",m,n))

出错原因:在python中可以用列表表示数组的每一行,然后通过每行插入的方式来形成一个二维的数组。

但是,此处我在往列表a里插入列表的时候,习惯性的直接放在了圆括号!!!

在python中列表用方括号 [ ]表示,而元组才是圆括号!!!

元组和列表的区别具体可以看我的小白基础笔记:小白快速入门(二)

改正后:

#Tools: Pycharm 2017.3.2 
_author_ = ' Hermione'
m,n=map(int,input().split())
a=[]
count=0
for i in range(m):
    s=input()
    a.append([int(b) for b in s.split()])
for i in range(1,m-1):
    for j in range(1,n-1):
        if a[i][j]>a[i+1][j] and a[i][j]>a[i][j+1] and a[i][j]>a[i-1][j] and a[i][j]>a[i][j-1]:
            print("{} {} {}".format(a[i][j],i+1,j+1))
            count+=1
if count==0:
    print("{} {} {}".format("None",m,n))

测试运行

在这里插入图片描述
在这里插入图片描述

非常感谢,你能看到这里,如有错误欢迎留言指正,一起进步吧~

也希望走过路过的大神给萌新一点指点,喵呜~(╹▽╹)


版权声明:本文为HarryOtter原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。