如何判断一个对象是否可迭代?
什么是迭代?
答:for循环就是迭代
什么是迭代对象?
答:可以被next()函数调用并不断返回下一个值的对象称为迭代器:Iterator
注意,列表不是可迭代对象,生成器是迭代器,迭代器不一定是生成器
即:生成器都是Iterator对象,但list、dict、str虽然是Iterable,却不是Iterator。
如何判断对象是否能迭代?
方法一:能用for循环遍历的对象就是可迭代对象
方法二:正规方法–>from collections import Iterable
比如: isinstance(“abc”,Iterable) return True
isinstance([],Iterable) return True 表明列表是可迭代的
注意区分参数 Iterable与Iterator :
from collections import Iterator
isinstance([],Iterator) return False 表明列表不是迭代对象、
把list、dict、str等Iterable变成Iterator可使用iter()函数
isinstance( iter( [] ) , Iterator ) return True