可迭代对象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等)。
来源:https://blog.csdn.net/Regina23/article/details/100014800