我是靠谱客的博主 矮小帽子,最近开发中收集的这篇文章主要介绍python3_高级属性: 生成器Generator,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

列表元素可以按照某种算法推算出来,那我们可以在循环的过程中不断推算出后续的元素呢?

这样就不必创建完整的list,从而节省大量的空间。在Python中,这种一边循环一边计算的机制,

称为生成器:generator。

g = (x*x for x in range(10))

for n in g:

    print (n)

 

著名的斐波拉契数列(Fibonacci),除第一个和第二个数外,任意一个数都可由前两个数相加得到:

1, 1, 2, 3, 5, 8, 13, 21, 34, ...

0,0,1

a, b = b, a+b

0,1

1,1

1,2

2,3

3,5

5,8

def fib(max):
    n, a, b = 0, 0, 1
    while n < max:
        print(b)
        a, b = b, a + b
        n = n + 1
    return 'done'

 

要把fib函数变成generator,只需要把print(b)改为yield b就可以了:

def fib(max):
    n, a, b = 0, 0, 1
    while n < max:
        yield b
        a, b = b, a + b
        n = n + 1
    return 'done'

如果一个函数定义中包含yield关键字,那么这个函数就不再是一个普通函数,而是一个generator

 

最后

以上就是矮小帽子为你收集整理的python3_高级属性: 生成器Generator的全部内容,希望文章能够帮你解决python3_高级属性: 生成器Generator所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(47)

评论列表共有 0 条评论

立即
投稿
返回
顶部