生成器
Posted sssun
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了生成器相关的知识,希望对你有一定的参考价值。
1.三元表达式:返回值为True的值 if 条件判断语句 else 返回值为False的值。
name = "Sun" yn = "Yes" if name == "Sun" else "No" print(yn) # Yes
2.列表生成式:[三元表达式]
li = ["我是第%d个" % i for i in range(10) if i <= 5] print(li) # [‘我是第0个‘, ‘我是第1个‘, ‘我是第2个‘, ‘我是第3个‘, ‘我是第4个‘, ‘我是第5个‘]
3.生成器的概念:可以理解为一种数据类型,这种数据类型自动实现了迭代器协议(其他的数据类型需要自己调用自己内置的__iter__方法),
所以生成器是可迭代对象。
4.生成器的分类:
1)生成器函数:常规函数定义,但是使用yield语句而不是使用return语句返回结果。
yield语句一次返回一个结果,在每个结果中间,挂起函数的状态,以便下次从它离开的地方继续执行。
2)生成器表达式:类似于列表生成式,生成器按需产生结果的一个对象,而不是一次构造一个结果表达式。
l = ("我是第%d个" % i for i in range(10) if i <= 5) print(l) # <generator object <genexpr> at 0x000001F7E8CBED58>
以上是关于生成器的主要内容,如果未能解决你的问题,请参考以下文章