可迭代对象,迭代器(生成器)区别
2017-08-14 11:17
441 查看
python中有些概念非常容易弄混淆,比如可迭代对象和迭代器。
什么是可迭代对象呢?
最简单的定义就是:可以使用for...in...语句进行循环的对象,比如字符串、列表、元组、字典以及迭代器、生成器都是可迭代对象。
可以使用isintance()来判断:
>>> from collections import Iterable >>> isinstance({'dede':123},Iterable) True >>> isinstance('hello',Iterable) True >>> isinstance(123,Iterable) False >>> isinstance([1,3],Iterable) True
而迭代器是可以使用next()进行回调的对象,可迭代对象和迭代器的联系是:可以对迭代对象使用iter()方法来生成迭代器。
>>> a = iter([1,3,5]) >>> next(a) 1 >>> next(a) 3 >>> next(a) 5 >>> next(a) Traceback (most recent call last): File "<stdin>", line 1, in <module> StopIteration
或者根据列表生成式来创建生成器:
>>> l = ( x * x for x in range(1,11)) >>> l <generator object <genexpr> at 0x000000A8DF038938>
总结:
1.迭代器一定是迭代对象,迭代对象不一定是迭代器
2.生成器一定是迭代器,迭代器不一定是生成器
3.使用for...in...来遍历迭代对象是最常用的方式
相关文章推荐
- python生成器,可迭代对象,迭代器区别和联系
- 列表解析式、生成器、迭代器及可迭代对象的区别和应用
- Python可迭代对象,迭代器,生成器的区别
- Python 可迭代的对象、迭代器和生成器
- 【python】14、完全理解可迭代对象、迭代器、生成器
- 完全理解Python迭代对象、迭代器、生成器
- 可迭代对象和迭代器生成器
- 完全理解Python迭代对象、迭代器、生成器
- 【python】 可迭代对象、迭代器、生成器
- python 中生成器、迭代器、可迭代对象解析
- 流畅的python第十四章可迭代的对象,迭代器和生成器学习记录
- python 可迭代对象,迭代器,生成器
- 完全理解 Python 迭代对象、迭代器、生成器
- Python迭代器,可迭代对象,生成器
- Python3.可迭代对象_迭代器_生成器
- Python迭代器,可迭代对象,生成器
- 完全理 4000 解 Python 迭代对象、迭代器、生成器
- Python生成器、迭代器、可迭代对象
- 完全理解 Python 迭代对象、迭代器、生成器
- 迭代器、可迭代对象、生成器