Python 迭代器与可迭代对象
2017-02-16 10:45
344 查看
迭代器是Python中非常重要的一个概念,很多的操作都是基于迭代器去做的, 比如说我们最常用的 for 循环,还有生成器其实也是一个迭代器,所以说迭代器也不是什么神秘的东西,主要需要区分清楚两个概念: 迭代器,可迭代对象。这里我们对迭代相关的知识做一个简单的梳理。
可以返回自身作为迭代器,也可以返回其他一个迭代器对象
使用 For 循环的时候其实也是调用iter函数使对象返回一个迭代器,再使用迭代器进行循环
python3: 实现了
一个对象可以同时既是可迭代对象又是迭代器,只要方法里有 next(python2) 或
迭代器转化为list或tuple之后就已经迭代到达尾端,不可再继续用了
iter函数
其实系统内置的iter 函数只是调用对象的__iter__方法,这个方法按照协议会返回一个迭代器,使得for循环这样的语法结构能够进行下去。
可迭代对象
实现了__iter__方法,就是可以迭代的
可以返回自身作为迭代器,也可以返回其他一个迭代器对象
使用 For 循环的时候其实也是调用iter函数使对象返回一个迭代器,再使用迭代器进行循环
迭代器
python2: 实现了 next 方法python3: 实现了
__next__方法
next函数
调用迭代器的 next 或__next__方法,一直到结束对象函数返回 StopIteration 异常
迭代器与可迭代对象联系
其实没有什么必要联系一个对象可以同时既是可迭代对象又是迭代器,只要方法里有 next(python2) 或
__next__(python3) 又有
__iter__方法,惯用的做法是
__iter__方法返回自己作为迭代器。
NOTE
迭代器是单向的迭代器转化为list或tuple之后就已经迭代到达尾端,不可再继续用了
相关文章推荐
- Python可迭代对象、迭代器和生成器
- python 3-2 如何实现可迭代对象和迭代器对象(2) BookIterable/BookIterator
- python之迭代器、生成器、可迭代对象
- 完全理解Python迭代对象、迭代器、生成器
- python之路——迭代器与可迭代对象
- Python迭代器,可迭代对象,生成器
- 【python】14、完全理解可迭代对象、迭代器、生成器
- Python 迭代器协议以及可迭代对象、迭代器对象
- 完全理解 Python 迭代对象、迭代器、生成器
- Python 可迭代的对象、迭代器和生成器
- Python之列表生成式、生成器、可迭代对象与迭代器
- 迭代器就是重复地做一些事情,可以简单的理解为循环,在python中实现了__iter__方法的对象是可迭代的,实现了next()方法的对象是迭代器,这样说起来有
- Python中的可迭代对象与迭代器对象
- 完全理解PYTHON迭代对象、迭代器、生成器
- 第八章 Python可迭代对象、迭代器和生成器
- python 3-1 如何实现可迭代对象iterable和迭代器对象iterator,__iter__,__getitem__
- Python可迭代对象,迭代器,生成器的区别
- python 可迭代对象之(列表解析,迭代器迭代) =>持续更新
- Python教程学习简记7--Python 可迭代对象:Iterable ,迭代器:Iterator
- Python生成器、迭代器、可迭代对象