让我来告诉你yield关键字怎么使用吧

本文探讨了在Python中使用yield关键字来优化大型数据集处理的方法。通过对比传统列表生成方式与yield生成器,展示了如何节省内存并按需生成数据。特别适用于处理大量数据而不希望一次性加载所有数据到内存的情况。

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

思考背景:使用python的时候,如果你生成了一个很大很大很长很长的列表或者字典,它们在python运行的会很占内存空间。我们可能在使用列表的第一个元素的时候,根本就不需要先把后面的第12345个元素也生成出来放在内存里面。我们只需要在使用到第12345个元素的时候再将这个元素生成出来就好了,所以也就有了今天的主角,yield

第一层理解,你把它当成是return,
第二层理解,你通过遍历return回来的对象,可以逐一地获得这些元素。

请看下面例子,如果你要打印0到9999999个数字,你可能会这么写

listsnum = range(0, 999999999)
for i in listsnum:
    print(i)

low ,是不是这种感觉,而且在你程序运行地时候,listsnum这个变量一直占用你很多内存空间,

使用上yield之后的代码

def nums():
    for i in range(0, 9999):
        yield i

hjx_gen = nums()  # 生成生成器实例对象

for m in hjx_gen:  # 遍历该对象即可取出你所生成的元素
    print(m)

这样就可以做到按需提取啦
每天记录一点点,每天成长一点点,坚持到所有人放弃

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值