python中的生成器(generator)

一、生成器

生成器是 Python 中非常有用的一种数据类型,它可以让你在 Python 中更加高效地处理大量数据。生成器可以让你一次生成一个值,而不是一次生成一个序列,这样可以节省内存并提高性能

二、实现generator的两种方式

python中的generator保存的是算法,真正需要计算出值的时候才会去往下计算出值。它是一种惰性计算(lazy evaluation)。

要创建一个generator有两种方式。

第一种方法:把一个列表生成式的[]改成(),就创建了一个generator

>>> L=[x * x for x in range(10)]
>>> L
[0,1,4,9,16,25,36,49,64,81]
>>> g = (x * x for x in range(10))#注意把[]改成()后,不是生成一个tuple,而是生成一个generator
>>> g
 at 0x1022ef630>

第二种方式:在函数中使用yield关键字,函数就变成了一个generator

函数里有了yield后,执行到yield就会停住,当需要再往下算时才会再往下算。所以生成器函数即使是有无限循环也没关系,它需要算到多少就会算多少,不需要就不往下算。

# -*- coding: UTF-8 -*-

def fibonacci():
    a, b = 0, 1
    while True:
        yield a
        a, b = b, a + b

# 使用生成器生成前 10 个斐波那契数列
fib = fibonacci()
for i in range(10):
    print(next(fib))

python中的生成器(generator)_第1张图片 

 

参考:

python中的生成器(generator)总结_python generator_Python 学习者的博客-CSDN博客

Python 生成器(generator)详细总结+示例_python generator_Jairoguo的博客-CSDN博客

你可能感兴趣的:(python,python,前端,linux)