彻底了解生成器

在python中,一边循环一边计算的机制,称之为生成器(generator)

生成器的存在:

列表所有的数据都在内存中,如果有海量的数据将会非常消耗内存。
如:仅仅需要访问前面几个元素,那后面绝大多数元素占用的空间都白白浪费了。
如果列表元素按照某种算法退出来,那我们就可以在循环的过程中不断推算出后续的元素,这样就不必创建完整的list,从而节省大量的空间。

说白点!! 要想得到庞大的数据,又想让它占用空间少,就就就就用生成器!

第一种生成生成器的方法把【】改成()则就是生成器

第二种 如果一个函数中包含yield关键字,那么这个函数就不在是个普通的函数,而是一个generator。调用函数就是创建了一个生成器。

生成器的工作原理:

首先,生成器是一种特殊的迭代器,它的yield方法将迭代器的next,封装到了yield关键字中,他与return不同的是:遇见return就已经返回了,而遇见yield则我们去计算下一个元素的位置。

我们也可以通过next()进行取值,也可以利用for循环(每次执行一次,取生成器里面一个值) 可以使用send()强行修改yield的值。

总结

什么是生成器?
生成器仅仅保存了一套生成数值的算法,并且没有让这个算法现在就开始执行,而是我什么时候调它,它什么时候开始计算一个新的值,并给你返回。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值