可迭代对象和迭代器类型
2021-01-05 本文已影响0人
庄周幻梦
可迭代对象(Iterable):凡是可以使用for循环遍历的都是可迭代对象
数据类型实现了迭代协议:(类里面定义了iter方法)
迭代器类型(Iterator):也是可迭代对象
数据类型实现了迭代器协议:
- 类里面定义了iter方法(迭代协议)
- 类里面定义了next方法
迭代器能够使用next方法进行迭代操作
所有的可迭代对象->可以转换为迭代器:
li=iter([11,22,33])
from collections.abc import Iterable, Iterator
List = [11, 22, 33]
print(isinstance(List, Iterable)) # True
print(isinstance(List, Iterator)) # False
List = iter(List)
print(isinstance(List, Iterable)) # True
print(isinstance(List, Iterator)) # True
for循环实现机制:
迭代器+while循环实现
def func(a):
tor = iter(a)
while True:
try:
print(next(tor))
except StopIteration:
break
List = [11, 22, 33]
func(List)