小白入门常见报错类型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版权协议,转载请附上原文出处链接和本声明。