迭代器(Iterator)与可迭代的(Iterable)
2017-10-30 21:52
357 查看
可以被next()函数调用并不断返回下一个值的对象称为迭代器:Iterator
凡是可作用于next()函数的对象都是Iterator类型,它们表示一个惰性计算的序列;
集合数据类型如list、dict、str等是Iterable但不是Iterator,不过可以通过iter()函数获得一个Iterator对象。
Python的for循环本质上就是通过不断调用next()函数实现的,例如:
from collections import Iterable isinstance([],Iterable) Out[4]: True #可迭代的
from collections import Iterator isinstance([],Iterator) Out[8]: False #但是并不是一个迭代器
总结
凡是可作用于for循环的对象都是Iterable类型;凡是可作用于next()函数的对象都是Iterator类型,它们表示一个惰性计算的序列;
集合数据类型如list、dict、str等是Iterable但不是Iterator,不过可以通过iter()函数获得一个Iterator对象。
Python的for循环本质上就是通过不断调用next()函数实现的,例如:
b= [1,2,3,4,5] for i in b: print(i) #等同于以下代码 a = iter([1,2,3,4,5]) while True: try: x=next(a) print(x) except StopIteration: break
相关文章推荐
- 可迭代对象(iterable)与迭代器类型(iterator)
- python 3-1 如何实现可迭代对象iterable和迭代器对象iterator,__iter__,__getitem__
- Python教程学习简记7--Python 可迭代对象:Iterable ,迭代器:Iterator
- 转载:Python高级特性 可迭代对象(Iterable) & 迭代器(Iterator)
- PYTHON 中 ITERATOR(迭代器)和ITERABLE(可迭代)的区别
- Python 中 Iterator(迭代器)和Iterable(可迭代)的区别:
- 可迭代对象Iterable、迭代器Iterator
- 迭代 Iterable与Iterator
- Iterator迭代器和Iterable的关系
- Python基础-高级-迭代器Iterable与迭代器对象Iterator
- 迭代中Iterable和Iterator分为两个接口的好处
- 【迭代器】自己写一个集合实现Iterable迭代功能
- 《GOF设计模式》—迭代器 (ITERATOR)—Delphi源码示例:避免限定于一种特定的列表实现(一般迭代)
- 《GOF设计模式》—迭代器 (ITERATOR)—Delphi源码示例:避免限定于一种特定的列表实现(多态迭代)
- Java迭代器:iterator和iterable接口的区别
- 迭代器Iterable和Iterator
- 《GOF设计模式》—迭代器 (ITERATOR)—Delphi源码示例:内部迭代器(封装不同类型的迭代)
- Python学习笔记(5) -- 迭代器(Iterable/Iterator/iter())
- Java 集合:迭代器(Iterator, Iterable)
- 迭代器(关键词:Python/iterator/iterable/__iter__/next)