Python的可迭代对象、迭代器以及生成器

博客介绍了可迭代对象、迭代器和生成器的定义。可迭代对象实现 _iter_() 方法,迭代器实现 _iter_() 和 next() 方法,生成器含 yield 关键字。迭代器是特殊可迭代对象,生成器是特殊迭代器。还说明了迭代过程及迭代器内存使用特点,每次只取一个元素放入内存。

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

可迭代对象、迭代器以及生成器

定义

  • 可迭代对象:实现了 _iter_() 方法的对象;
  • 迭代器:实现了 _iter_()next() 方法的对象;
  • 生成器:具有 yield 关键字的对象。
  • 迭代器是一种特殊的可迭代对象;
  • 生成器是一种特殊的迭代器,自动实现了迭代协议,即 _iter_() 和 next() 方法,无需自己定义。

内存使用

  • 迭代过程:任何可迭代对象传入到 for 循环或其他迭代工具中进行遍历时,迭代工具都是先通过 _iter_() 获得与可迭代对象对应的迭代器对象,然后对迭代器调用 next(),不断依次获取元素,并在捕捉到 StopIteration 异常时确定完成迭代。

  • 与 list 不同,迭代器每次迭代只取一个元素放入内存。




参考资料:
作者:张雨萌
链接:https://www.zhihu.com/question/56664006/answer/294504517

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值