Python创建生成器generator

Posted 算法与编程之美

tags:

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

问题

方法



# (1) [] -> ()
foo = (x for x in range(100))


# (2) 通过yield方式创建
def bar_gen():
    for i in range(100):
        yield i # 调用yield就返回一个生成器对象

bar = bar_gen()

for i in range(100):
    x = next(bar) # 通过next()方法每次获得一个生成数据
    print(x, end=' ')
print()

def bar_gen1():
    x = 1
    yield x+1 # 返回数据并暂停, 下一次next()的时候恢复到这里继续执行
    yield x+2
    yield x+3

bar1 = bar_gen1()

x1 = next(bar1)
x2 = next(bar1)
x3 = next(bar1)

print(x1, x2, x3) # 2 3 4 

结语

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

Python创建生成器generator

python 生成器 generator

深入理解Python生成器(Generator)

python- generator生成器

Python 基础 - Day 4 Learning Note - Generator 生成器

Python生成器(generator)和迭代器(Iterator)