生成器函数
1.什么是生成器?对象
在函数内但凡出现yield关键字,再调用函数就不会执行函数体代码,会返回一个值,该值称为生成器。ip
生成器的本质就是迭代器。for循环
2.为何要用生成器?循环
生成器是一种自定义迭代器的方式yield
3.如何使用生成器?迭代器
和迭代器同样,用next(),for循环,到函数中的yield即会中止总结
总结yield的功能next
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))