区分:迭代器 Iterator
和可迭代对象Iterable
1、可迭代对象Iterable:可以直接作用于 for
循环的对象统称为可迭代对象
1)可以直接作用于 for
循环的数据类型有以下几种:
一类是集合数据类型,如 list
、 tuple
、 dict
、 set
、 str
等;
一类是生成器 generator
,包括生成器和带 yield
的g生成器函数
2)可以使用 isinstance()
判断一个对象是否是 Iterable
对象,如:
2、迭代器:可以被 next()
函数调用并不断返回下一个值的对象称为迭代器
1)可以使用 isinstance()
判断一个对象是否是 Iterator
对象:
2)生成器都是迭代器对象,但 list
、 dict
、 str
虽然是可迭代对象,却不是迭代器
但是:可以使用 iter()
函数将 list
、 dict
、 str
等 可迭代对象
变成迭代器