生成器都是迭代器
列表、元组、字典、字符串都是可迭代对象
什么是迭代器?
- 有iter方法
- 有next方法
iter方法示例:
list=[1,2,3,4]
rst=iter(list) #iter方法将列表转换为迭代器
print(rst)
print(next(rst))
print(next(rst))
print(next(rst))
print(next(rst))
执行结果:
<list_iterator object at 0x000002CA1AF53860>
1
2
3
4
Process finished with exit code 0
for循环做的三件事
- 调用可迭代对象的iter方法,返回一个迭代器对象
- 不断调用迭代器的next方法
- 异常处理(StopIteration)
判断对象是什么数据类型
from collections import Iterable,Iterator
li=[1,2,3,4]
rst=iter(li)
print(isinstance(li,list))
print("---")
print(isinstance(li,Iterable))
print("---")
print(isinstance(li,Iterator))
print("---")
print(isinstance(rst,Iterator))
print("---")
执行结果:
True
---
True
---
False
---
True
---
Process finished with exit code 0