python基础之生成器,三元表达式,列表生产式

生成器

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))     

原文地址:https://www.cnblogs.com/luck-L/p/9177640.html