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

思考背景:使用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)

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值