Python 生成器和生成器表达式

Posted zhaoyubing

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python 生成器和生成器表达式相关的知识,希望对你有一定的参考价值。

一. 生成器

  什么是生成器?

  生成器实质就是迭代器.在python中有三种方式来获取?生成器:

    1. 通过?成器函数

    2. 通过各种推导式来实现生成器

    3. 通过数据的转换也可以获取生成器

def func():
    print("111") 
    return 222

ret = func()
print(ret)
结果:
111
222

  

def func():
    print("111")
    yield 222

ret = func() 
print(ret)
结果:
<generator object func at 0x10567ff68>

 yield 是分段执行这个函数体

 生成器函数在执行的时候返回生成器. 而不是直接执行此函数

 能向下执行的两个条件:
   __next__(), 执行到下一个yield
   send(), 执行到下一个yield, 给上一个yield位置传值

生成器的优点和特点

  优点: 节省内存, 生成器本身就是代码. 几乎不占用内存
  特点: 惰性机制, 只能向前. 不能反复

生成器表达式

    (结果 for循环 if)

  








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

python之列表推导和生成器表达式

1.17 Python基础知识 - 迭代器和生成器初识

Python之浅谈生成器

列表生成式和三元表达式(python3入门)

Python学习之路-装饰器&生成器&正则表达式

Python第9天