【Python新手求助】访问生成器
7. 上节课我们通过课后作业的形式学习到了“列表推导式”,那请问如果我把中括号改为小括号,会不会得到“元组推导式”呢?自己动手试试看再看答案哦^_^
Python3 木有“元组推导式”,为嘛?没必要丫,有了“列表推导式”已经足够了。
那为什么“>>> tuple1 = (x**2 for x in range(10))”不会报错?
因为你误打误撞得到了一个生成器。
关于生成器的概念小甲鱼今后会细讲,你可以尝试这么去访问我们刚刚的生成器:
# 注意,Python3 开始 next() 方法改为 __next__() 哦~
tuple1.__next__()
0
tuple1.__next__()
1
tuple1.__next__()
4
tuple1.__next__()
9
tuple1.__next__()
16
tuple1.__next__()
25
tuple1.__next__()
36
十三讲的课后解析。为什么我会报错?
>>> tuple1._next_()
Traceback (most recent call last):
File "<pyshell#44>", line 1, in <module>
tuple1._next_()
AttributeError: 'generator' object has no attribute '_next_'
求解。 __next__ 前后是两个下划线 zltzlt 发表于 2020-8-7 14:55
__next__ 前后是两个下划线
原来如此,谢谢谢谢
页:
[1]