多语言展示
当前在线:302今日阅读:103今日分享:49

零基础学python生成器全解二

详解分析几个生成器的案例,简单易懂,现学现用。
工具/原料
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()函数。

推荐信息