生成器
1.什么是生成器?
在函数内但凡出现yield关键字,再调用函数就不会执行函数体代码,会返回一个值,该值称为生成器。
生成器的本质就是迭代器。
2.为什么要用生成器?
生成器是一种自定义迭代器的方式
3.如何使用生成器?
和迭代器一样,用next(),for循环,到函数中的yield即会停止
总结yield的功能
1.提供一种定义迭代器的方式
2.yield可以暂停函数,并返回值
yield VS return
相同点:都是在函数内的,都可以有返回值,没有类型的限制,没有个数的限制
不同点:return只能返回一次值,yield可以返回多次值
了解:yield用法:
①yield + 值 常用
②x = yield 函数读到yield就暂停,等待传值,然后赋值给x,传值用g.send(adj)
三元表达式:
res = x if x > y else y 条件成立时返回x,不成立时返回y
列表生产式:
l = [i**2 for i in range(1,10)]
names = [‘alex’,’wxx’,’egon’]
names = [name+’hh’ for name in names if name !=’egon’]
zip:x=[1,2,3] y = [0,0,0]
res = zip(x,y) res为迭代器
max: max(x) x可以是一个可迭代对象
生成器表达式:
g = (i for i in rang(10))