【python迭代器和生成器区别】迭代器是一个更抽象的概念,任何对象,如果它的类有 next 方法和 iter 方法返回自己本身,对于 string、list、dict、tuple 等这类容器对象,使用 for 循环遍历是很方便的 。
在后台 for 语句对容器对象调用 iter()函数,iter()是 Python 的内置函数 。iter()会返回一个定义了 next()方法的迭代器对象,它在容器中逐个访问容器内元素,next() 也是 python 的内置函数 。在没有后续元素时,next()会抛出一个 StopIteration 异常 。
生成器(Generator)是创建迭代器的简单而强大的工具 。它们写起来就像是正规的函数,只是在需要返回数据的时候使用 yield 语句 。每次 next()被调用时,生成器会返回它脱离的位置(它记忆语句最后一次执行的位置和所有的数据值)
区别:
生成器能做到迭代器能做的所有事,而且因为自动创建了 iter()和 next()方法,生成器显得特别简洁,而且生成器也是高效的,使用生成器表达式取代列表解析可以同时节省内存 。除了创建和保存程序状态的自动方法,当发生器终结时,还会自动抛出 StopIteration 异常 。
推荐阅读
- 华为路由器基本查看指令
- 最详细的python生成器分类与详解
- 光猫接交换机和路由器,怎么设置?
- 芯片是怎么被解密的,解密设备和解密器有哪些?
- 服务器与虚拟主机最大的区别是什么?
- Python对接六大主流数据库
- Linux如何查看服务器开放的端口号
- python:网络安全攻击与防御的工具
- Python实现订单超时自动取消
- 注意这四个行为!点烟器就是这么被你用坏的