13、Python 生成器:高效迭代的秘密武器

Python 生成器:高效迭代的秘密武器

1. 生成器概述

生成器是 Python 提供的强大工具,基于迭代概念,能实现优雅与高效并存的编码模式。生成器主要分为两类:
- 生成器函数 :与普通函数类似,但使用 yield 而非 return 语句返回结果,可在每次调用间暂停和恢复状态。
- 生成器表达式 :与列表推导式语法相似,不过返回的是逐个产生结果的对象,而非列表。

2. 生成器函数

生成器函数在各方面类似普通函数,区别在于它不是一次性收集并返回结果,而是开始计算、产生一个值、暂停状态以保存恢复所需信息,再次调用时恢复并执行下一步。Python 会自动将生成器函数转换为迭代器,可对其使用 next 函数。

以下是一个简单示例,对比普通函数和生成器函数计算平方数:

def get_squares(n):  # 普通函数方法
    return [x ** 2 for x in range(n)]
print(get_squares(10))

def get_squares_gen(n):  # 生成器方法
    for x in range(n):
        yield x ** 2  # 使用 yield,不使用 return
print(list(get_squares_gen(10)))

两个函数打印结果相同: [0, 1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值