微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python生成器条件

Python中的生成器是一种特殊的函数,可以通过yield语句将结果逐一返回给调用者,而不是一次性返回整个结果集。生成器因其惰性计算的特性,可以处理大量数据而不会一次性占用太多内存。

def fibonacci():
    a,b = 0,1
    while True:
        yield b
        a,b = b,a + b

f = fibonacci()
for i in range(10):
    print(next(f))

python生成器条件

上面的例子中,生成器fibonacci()通过yield语句逐一返回斐波那契数列的每一项,而不是将整个数列一次性返回。调用者在for循环中通过next()函数获取下一项,每次只会占用一项的内存。

生成器可以用于实现协程、惰性序列等用途,可以通过条件和循环结构来控制生成器的推导过程。

def filter_numbers(n,generator):
    for i in generator:
        if i % n == 0:
            yield i

gen = filter_numbers(3,range(10))
for i in gen:
    print(i)

上面的例子中,生成器filter_numbers()返回范围内所有能被传入的n整除的数。具体实现是在循环generator的过程中,通过条件if i % n == 0过滤出需要的数。

Python的生成器可实现更复杂的条件和循环结构。熟练掌握生成器是Python高效编程的重要基础。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐