本文主要是介绍python--生成器(Generators),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
生成器也是一种迭代器,但是你只能对其迭代一次。这是因为它们并没有把所有的值存在内存中,而是在运行时生成值。你通过遍历来使用它们,要么用一个“for”循环,要么将它们传递给任意可以进行迭代的函数和结构。大多数时候生成器是以函数来实现的。然而,它们并不返回一个值,而是yield
(暂且译作“生出”)一个值。这里有个生成器函数的简单例子:
def generator_function():for i in range(10):yield ifor item in generator_function():print(item)
计算斐波那契数列的生成器:
# generator version def fibon(n):a = b = 1for i in range(n):yield aa, b = b, a + bfor x in fibon(100):print(x)
用这种方式,我们可以不用担心它会使用大量资源。
def generator_function():for i in range(3):yield igen = generator_function() print(next(gen)) # Output: 0 print(next(gen)) # Output: 1 print(next(gen)) # Output: 2 print(next(gen))
# =====================
iter它将根据一个可迭代对象返回一个迭代器对象
my_string = "Yasoob"
my_iter = iter(my_string)
print(next(my_iter))
这篇关于python--生成器(Generators)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!