1.凡事可用于for循环的对象都是Iterable类型对象;
2.凡事可做用于next()函数的对象都是Iterator类型对象,他们表示一个惰性计算的序列;
3.集合数据类型list、dicr、str等是Iterable对象不是Iterator对象,但是可以通过调用iter()函数获得一个Iterator对象;
4.Python的for循环的本质就是通过不停调用next()函数实现,如:
for x in [1, 2, 3, 4, 5]:
pass
等价于:
# 首先获得Iterator对象:
it = iter([1, 2, 3, 4, 5])
# 循环:
while True:
try:
# 获得下一个值:
x = next(it)
except StopIteration:
# 遇到StopIteration就退出循环
break
发现光看文档学有点慢也好无聊。。