欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

小白入门常见错误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 的解决方法

报错截图:

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

源代码截图:

小白入门常见错误python: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))

测试运行

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

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

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