python 生成器generator

本文深入探讨了Python生成器的特性及用法,解释了如何通过生成器节省内存,特别是在处理大量数据时的优势。文章对比了生成器与列表的创建方式,并通过实例展示了将普通函数转换为生成器的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

特性

节省内存。不需要像list一样一下子存储很多需要的数据,如果数据可以通过某种规则生成,则可以通过python的生成器来生成数据,在需要数据时直接调用即可。

用法

list在创建时使用‘[]’,而创建生成器时使用‘()’,如创建生成器g,需要数据时使用next()获得下一个数据:

注意:当生成器中无更多元素时,会抛出StopIteration错误。

 有时将函数中的print函数改为yield,可以将函数变为生成器,如打印斐波那契数列时,通常我们这样写:

要将其转换成生成器,只要将print语句改成yield,如:

调用生成器时,函数就会执行到yield语句,在下一次调用时,会从yield语句的下一句开始执行,直到下一个yield语句。

生成器是可迭代对象,所以可以用在for循环中,如:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值