生成器

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>
posted @ 2019-11-11 17:46  阿阿Sun  阅读(116)  评论(0)    收藏  举报