python生成器generator

本文探讨了在处理大量数据时使用Generator的优势,避免了一次性加载所有数据到内存的问题。通过逐步生成和使用数据,Generator能有效节省内存资源,同时提供了一种灵活的数据处理方式。

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

generator初探:

1.干嘛的:当有大量数据处理的时候,再去拿列表去存数据就太跟内存过不去了。generator可以一个一个的算,用一个生成一个,内存毫发无损,损失了运算

2.怎么用:讲一个简单的初级demo,这玩意儿回头实战再研究:

def yield_funct(n):
    for i in range(1,n):
        yield ff(i)
        print('testi====', i)  


def ff(i):
    return i *5

if __name__ == '__main__':
    for i in yield_func(15):

        print('namei=', i) 

 

输出结果是

namei= 5
tetsi==== 1
namei= 10
tetsi==== 2
namei= 15
tetsi==== 3
namei= 20
tetsi==== 4

解释:在name中,用yield_func生成一个生成器(类似列表),这个生成器并没有实际像列表那样,而是用第几个生成第几个。于是在第一个的时候,生成了一个5,通过yield返回到name里,所有namei打印的是5,而testi为啥是1?因为在yield_func里,i指的是for中的i。实际上把这里的i写成非i即可容易区分,比如x

初步理解就这样

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值