码迷,mamicode.com
首页 > 其他好文 > 详细

生成器

时间:2019-11-11 18:29:27      阅读:98      评论:0      收藏:0      [点我收藏+]

标签:表达式   返回结果   判断语句   迭代器   列表生成式   数据类型   cbe   返回   col   

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>

生成器

标签:表达式   返回结果   判断语句   迭代器   列表生成式   数据类型   cbe   返回   col   

原文地址:https://www.cnblogs.com/Sssun/p/11835046.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!