可迭代对象Iterable
可以直接作用于for
循环的对象统称为可迭代对象Iterable
。
一类是集合数据类型,如lsit
、tuple
、dict
、set
、str
等;
另一类是generator
,包括生成器和带yield
的函数。
可以使用isinstance()
进行判断。
可迭代器Iterator
可以被next()
调用并不断返回下一个值的对象成为迭代器Iterator
。
generator
都是迭代器;
可使用iter()
将list
、dict
、str
变为迭代器。
可以使用isinstance()
进行判断。
总结
for
循环本质上就是通过不断调用next()
实现的,故可迭代器Iterator
类型的对象都是可迭代对象Iterable
(如generator
);反之,不一定(如list
、str
等)。