Python内置的enumerate函数可以把一个list变成索引-元素对,这样就可以在for循环中同时迭代索引和元素本身
for循环的对象统称为可迭代对象:Iterablenext()函数调用并不断返回下一个值的对象称为迭代器: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()函数实现的