1。直接作用于for循环的数据类型:
类1:集合。 如:list、tuple、dict、set、str等
类2:生成器。包括生成器和带yield的生成器函数。
2.可迭代对象(Iterable):可直接作用于for循环的对象。
拓展:如何判断一个对象是否是Iterable对象?
用isinstance()
3.迭代器(Iterator):可被next()函数调用并不断返回下一个值的对象。
拓展:如何判断一个对象是否是Iterator对象?
用isinstance()
注:生成器都是Iterator对象,但list,dict,str虽是Iterable却不是Iterator。
把list,dict,str等Iterable变成Iterator可以使用iter()函数。
Iterator对象------惰性计算的数列。
4.一个等价说明:
python的for循环,本质上等于不断调用next()函数实现。
①for循环
②next()函数