Python内置的enumerate
函数可以把一个list
变成索引-元素对,这样就可以在for
循环中同时迭代索引和元素本身
for
循环的对象统称为可迭代对象:Iterable
next()
函数调用并不断返回下一个值的对象称为迭代器:Iterator
,它们表示一个惰性计算的序列使用isinstance()
判断一个对象是否为可迭代对象Iterable
>>> from collections.abc import Iterable
>>> isinstance('abc', Iterable) # str是否可迭代
True
使用isinstance()
判断一个对象是否是Iterator
对象:
>>> from collections.abc import Iterator
>>> isinstance((x for x in range(10)), Iterator)
True
把list
、dict
、str
等Iterable
变成Iterator
可以使用iter()
函数:
>>> isinstance(iter([]), Iterator)
True
for
循环本质上就是通过不断调用next()
函数实现的