python 生成器变量
Python中的生成器是一种特殊的变量类型,它可让程序员以一种延迟计算的方式逐渐生成结果。相比于普通的列表或集合等容器类型,其可以大大下降程序的空间消耗,提高代码的性能。
# 示例以下 def my_generator(): for i in range(5): yield i*i gen = my_generator() print(next(gen)) # 输出 0 print(next(gen)) # 输出 1 print(next(gen)) # 输出 4 print(next(gen)) # 输出 9 print(next(gen)) # 输出 16
可以看出,生成器变量会在运行时才逐渐生成值,而非一次性将所有结果存入内存,从而避免了大内存的占用和浪费。
在Python中,生成器又可分为两种类型:迭代生成器和带有 send() 方法的生成器。在使用时,需要注意它们的区分和使用方式。
# 迭代生成器 def my_generator(n): for i in range(n): yield i # 带有 send() 方法的生成器 def my_generator(n): i = 0 while i< n: yield i i = yield i*2 # 带有 send() 方法 # 示例代码 gen1 = my_generator(5) gen2 = my_generator(5) for j in gen1: print(j) for k in gen2: if k == 2: print(gen2.send(7))
在代码中,迭代生成器使用了 for 循环进行静态迭代,而带有 send() 方法的生成器可以动态修改生成器内部的计算进程。但不管哪种生成器类型,其本质都是一种可迭代对象,可使用逐一迭代的方式逐渐生成结果。
文章来源:丸子建站
文章标题:python 生成器变量
https://www.wanzijz.com/view/60501.html