python 生成器

Posted

tags:

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

什么是生成器

如果一个函数里面使用了yeild关键字,那么,这个函数就是一个生成器。

生成器是一种推导逻辑,调用生成器返回迭代器。

生成器的创建方法

  1. 改列表推导式[]为()
  2. 使用带有yeild关键字的函数
# 改列表推导式[]为()
 
l = [2*x for x in range(3)]
print(l) # [0, 2, 4]
 
g = (2*x for x in range(3))
print(next(g)) # 0
print(next(g)) # 2
print(next(g)) # 4
 
print(next(g)) # StopIteration异常
 
使用带有yeild关键字的函数
 
def f():
    print(‘step 1‘)
    yield 1
    print(‘step 2‘)
    yield 2
    print(‘step 3‘)
    yield 3
 
g = f()
print(next(g)) # step 1 1
print(next(g)) # step 2 2
print(next(g)) # step 3 3
print(next(g)) # StopIteration 异常

斐波那契数列,除了前两项,后面的一项是前面两项的和

def fib(n):
    a, b, counter = 0, 1, 0
    while True:
        if counter > n:
            break
        a, b = b, a + b
        # print(a, end=‘ ‘)
        yield a
        counter += 1
 
g = fib(10)
 
for x in g:
    print(x,end=‘ ‘)
# 1 1 2 3 5 8 13 21 34 55 89

  

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

postman 自动生成 curl 代码片段

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

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

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

vscode代码片段生成vue模板

常用python日期日志获取内容循环的代码片段