如何运用python的generator生成器
1、def test(ls): newls = [] for i in ls: newls.append(i + 2) return newlsls = [2, 5, 9, 11]test(ls)#首先要让大家知道正常遍历式修改列表的一个方法。
2、def test(ls): for i in ls: yield (i + 2)ls = [2, 5, 9, 11]test(ls)#使用yield就可以制作生成器了,大大简化了书写。
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循环把他们打印出来。