王剑编程网

分享专业编程知识与实战技巧

Python 生成器及其使用方法

创建 Python 生成器

在 Python 中制作生成器很容易。它们是一种一个接一个给出值的函数。这使得数据处理变得高效。让建一个:

  1. 从函数开始:使用 def 创建普通函数。
  2. Yield,而不是 return:在函数中,使用 yield 而不是 return。每次使用 yield 时,该函数都会发出一个值,然后暂停。
  3. 调用函数:调用生成器函数会给出一个生成器对象,而不是通常的函数结果。
  4. 循环生成器:使用循环(如 for 循环)遍历生成器。每次,该函数都会“唤醒”,运行到下一个产量,然后再次暂停。

下面是一个非常简单的 Python 生成器示例:

def countdown(n):
    while n > 0:
        yield n
        n -= 1
# Create the generator
count_gen = countdown(3)

# Iterate over the generator
for number in count_gen:
    print(number)

这是输出。

   3
  2 
  1

在此示例中,countdown 是一个 Python 生成器函数,它生成从 n 到 1 的数字。当我们调用 countdown(3) 时,它会创建一个生成器对象。然后,我们使用 for 循环遍历此生成器,打印每个数字。这将输出 3、2、1,因为生成器会逐个生成这些值。

生成器与 Python 中的常规函数有何不同

  1. Yield vs. Return:常规函数发送一个带有 return 的值,然后停止。但是生成器使用产量来给出一个值,然后暂停,保持其状态。当您再次调用它时,它会从停止的位置继续。
  2. 内存效率:常规函数一次给出所有值,这可能会为大型数据集使用大量内存。生成器一个接一个地产生值。
  3. 迭 代:迭代在编程中很重要。常规函数为您提供单个值,但生成器允许您随着时间的推移逐个检查值。当您不需要一次处理所有数据时,这很方便。

当您必须处理数据而不将其全部保存在内存中时,Python 的生成器非常有用。

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言