python中迭代器和生成器的区别,python中迭代器的作用
迭代器
迭代是访问集合元素的一种方式。迭代器是一个可以记住遍历位置的对象。迭代器对象从集合的第一个元素开始访问,直到所有元素都被访问。迭代器只能向前,不能向后。
1.可迭代对象
以下数据类型直接作用于for循环:
一类是集合数据类型,如list、tuple、dict、set、str等。
第一类是生成器,包括生成器和带yield的生成器函数。
这些可以直接作用于for循环的对象统称为iterable对象:Iterable。
2.判断是否可以迭代
您可以使用isinstance()来确定一个对象是否是可迭代对象:
运行结果:
生成器不仅可以作用于for循环,还可以被next()函数反复调用并返回下一个值,直到抛出最后一个StopIteration错误,表示无法继续返回下一个值。
相关:《Python视频教程》
3.迭代器
可以被next()函数调用并不断返回下一个值的对象称为Iterator:迭代器。
运行结果:
4.iter()函数
生成器是迭代器对象,但list、dict、str是可迭代的,但不是迭代器。
可以使用iterator()函数将list、dict、iter等Iterable变成Iterator:
运行结果:
总结
可在for循环中使用的所有对象都是可迭代类型;
所有可以在next()函数中使用的对象都是迭代器类型。
设置list、dict、iter等数据类型。是可迭代的但不是迭代器,但是你可以通过Iterator()函数得到一个迭代器对象。
目的是减少使用集合时占用的内容。
相关建议:
三分钟理解什么是Python生成器。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。