多语言展示
当前在线:460今日阅读:23今日分享:25

如何运用python的generator生成器

运用python的generator生成器,本文用jupyter notebook编辑器。
工具/原料

python3

方法/步骤
1

def test(ls):    newls = []    for i in ls:        newls.append(i + 2)    return newlsls = [2, 5, 9, 11]test(ls)#首先要让大家知道正常遍历式修改列表的一个方法。

3

def test(ls):    for i in ls:        yield (i + 2)ls = [2, 5, 9, 11]next(test(ls))#我们要输出生成器的内容,需要用next,但是只能输出一个。

4

def test(ls):    for i in ls:        yield (i + 2)ls = [2, 5, 9, 11]print(next(test(ls)))print(next(test(ls)))print(next(test(ls)))#如果要多次输出不能这样书写,不然固定返回第一个结果。

5

def test(ls):    for i in ls:        yield (i + 2)ls = [2, 5, 9, 11]g = test(ls)print(next(g))print(next(g))print(next(g))#我们需要存储在一个变量里面,再进行打印。

6

def test(ls):    for i in ls:        yield (i + 2)ls = [2, 5, 9, 11]g = test(ls)print(next(g))print(next(g))print(next(g))print(next(g))print(next(g))#超出范围的时候会进行提醒。

7

ls = [2, 5, 9, 11]g = [i + 2 for i in ls]print(g)#列表推导式可以和生成器一起用,我们先看看列表推导式的使用方法。

8

ls = [2, 5, 9, 11]g = (i + 2 for i in ls)print(g)#这个时候把中括号变成括号就可以变成生成器了。

9

ls = [2, 5, 9, 11]g = (i + 2 for i in ls)print(next(g))print(next(g))print(next(g))#同样也是可以用next来把数据输出。

10

ls = [2, 5, 9, 11]g = (i + 2 for i in ls)for i in g:    print(i)    #也可以用FOR循环把他们打印出来。

注意事项

注意yield放的位置

推荐信息