小白入门常见错误python:TypeError: ‘generator‘ object is not subscriptable 的解决方法(萌新踩雷!!!)
程序员文章站
2022-07-14 23:43:23
...
小白入门常见、易错类型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))