Python迭代器和生成器(3)

本文通过生动的比喻解释了Python中迭代器与生成器的概念。对比了一次性加载所有数据与按需生成数据的不同,强调了生成器在节省内存空间上的优势。并给出了rang与xrange函数的具体区别,深入探讨了生成器作为一种特殊迭代器的实现原理。

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

Python迭代器和生成器(3)

前面理解了迭代器的要点和实现。从这里来讲我们使用迭代器就仅仅是为了让它在for循环中使用,目前看起来是这样。但实际上,迭代器是为了我们接着来说的生成器。老师举了一个非常浅显易懂的例子来说明迭代器的用法。老师说他一个星期不想下楼吃饭,有2种做法,一是一次买很多馒头,每天吃一个;还有一种是每天吃的时候叫外卖送。如果放在程序中来讲就是一次保存很多数据,以备将来使用;二是用的时候生成数据。很显然第二种方法更加节约空间。这就是迭代器的高级用法,保存生成数据的代码(或者说是方法),而不是数据列表,也就是生成器。 生成器是一种特殊的迭代器。特殊在它没有__next__方法,但也一样可以像迭代器那样使用。

举例来说:
rang(1,10)返回的是列表[1,2,3,4,5,6,7,8,9,10]
xrange(1,10)返回的是一个对象,这个对象保存了得到上述列表的方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值