Iterable对象:
能够直接作用于for循环的对象,统称为可迭代对象,其中包括:字符串,list,tuple,及dict和set
Iterator对象:
无法直接作用于for循环,获取元素的值需要通过next()函数来实现的元素,称为Iterator对象,也称为迭代器
生成器:
生成器不但可以直接作用于for循环,也可以通过next()函数来实现对下一个函数值的调用,生成器都是Iterator对象,但是list,dict,字符串生成的对象,却不是Iterator类型,故需要通过iter()函数将上述对象转换为Iterator对象来实现。
如何判断一个元素是否为Iterator对象?
通过isinstance()函数来实现
isinstance(你要判断的元素集合,Iterator),返回值类型为True 或者 False
eg:
from collections import Iterable,Iterator list_number=[1,2,3] isinstance(list_number,Iterable) length = len(list_number) print(length) #结果应该是True #生成器不但可以返回作用于for循环, # 而且可以通过next()函数来实现对下一个元素的调用,直到无法继续调用位置,这个函数有点指针的意思 isinstance(list_number,Iterator) #生成器都是Iterator对象,但list,dict,str则不是Iterator对象, # 通过Iter()方法可以实现将Iterable对象转换为Iterator对象 #EG iter(list_number) isinstance(iter(list_number),Iterator)