如何运用python的generator生成器
1、def test(ls):
newls = []
for i in ls:
newls.append(i + 2)
return newls
ls = [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循环把他们打印出来。
