详解分析几个生成器的案例,简单易懂,现学现用。
工具/原料
1
python3.6
2
pycharm
方法/步骤
1
print('fib:1 1 2 3 5 8 13 21....') # 斐波拉契数列def fib_list(n): tmp = [] a, b = 1, 1 while a < n: tmp.append(a) a, b = b, a+b return tmp= fib_list(200)print(L)
2
# 定义斐波拉契的生成器函数def fib_generator(n): a, b = 1, 1 while a < n: yield a a, b = b, a+b
3
# 调用函数,生成一个生成器,用for循环遍历生成器。g = fib_generator(200)for i in g: print(i, end=' ')print()
4
# 定义斐波拉契的生成器函数第二种写法def fib1(): a, b = 1, 1 while 1: yield a a, b = b, a+b
6
使用生成器,首先是用关键字yield定义一个生成器函数,然后是调用函数创建一个生成器,最后是用循环遍历,用next()函数取出生成器的下一个值。
注意事项
生成器每次运行到yield语句就会暂停,直到下次调用next()函数。