生成器

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>

以上是关于生成器的主要内容,如果未能解决你的问题,请参考以下文章

Apollo Codegen 没有找到生成代码的操作或片段

前端开发工具vscode如何快速生成代码片段

前端开发工具vscode如何快速生成代码片段

vscode代码片段生成vue模板

VS Code配置snippets代码片段快速生成html模板,提高前端编写效率

vs 2010代码片段