python3 yield关键字简单使用

python3 yield关键字

  • yield简单介绍
    • 如何改变文本的样式
    • 简单实例
    • 为什么需要生成器?
      • 实例
      • 优势

yield简单介绍

yield <==> 生成器
包含yield语句的函数是一个生成器
生成器每次产生一个值(yield语句),函数被冻结,被唤醒后再产生一个值
生成器是一个不断产生值的函数

如何改变文本的样式

强调文本 强调文本

简单实例

def gen(n):
    for i in range(n):
        yield i**2

        
for i in gen(5):
    print(i, ' ', end='')

生成器每调用一次在yield位置产生一个值,直到函数执行结束.

输出
0 1 4 9 16

为什么需要生成器?

实例

def gen(n):
    for i in range(n):
        yield i**2


def square(n):
    return [j**2 for j in range(n)]


for i in gen(5):
    print(i, ' ', end='')
print()
for i in square(5):
    print(i, ' ', end='')

输出结果
0 1 4 9 16
0 1 4 9 16

生成器gen(n)每次只使用一个存储单元,不断的更新;
与生成器相比square(n)函数则是把所有的数都存入列表中,等待使用;
当所需的对象很多时,如n=1M,100M或更大时,很明显生成器更加节省空间。

以上为个人理解,如有误请指正

优势

生成器相比一次列出所有内容的优势:
1.更节省存储空间
2.响应更迅速
3.使用更灵活

你可能感兴趣的:(个人学习笔记,python)