可迭代对象
什么是可迭代对象?
简单来说,能够被for
循环遍历的就是可迭代对象
怎么确定一个对象是可迭代对象?
- 是否可以被
for
循环 - 检查对象是否拥有
.__iter__
,或者.__getitem__
接口
可迭代对象分为几类?
可迭代对象分为两类,数据类型和generator
数据类型
- list: 列表对象中有一个
.__iter__
的接口,调用iter()时实际上就是调用.__iter__
接口 - str: 字符串对象中没有
.__iter__
接口,但是字符串对象有一个.__getitem__
接口, - tuple
- dict
- set
- ...
generator
生成器也是可迭代对象
In [12]: gen=(i for i in range(10))
In [13]: type(gen)
Out[13]: builtins.generator
In [14]: for i in gen:
....: print(i)
....:
0
1
2
3
4
5
6
7
8
9