迭代器
Iterable可迭代对象
可以直接作用于for 循环的对象统称为可迭代对象(Iterable)
可以直接作用于for的数据类型一般分两种:
- 集合数据类型,例如list,tuple,set,dict,string
- generator,包括生成器或带yield的generator function
可以用isinstance()判断一个对象是否是Iterable对象。
导入from collections import Iterable
from collections import Iterable #导入
print(isintance([], Iterable)) #返回true
迭代器 Iterator
- 可作用于for循环
- 被next()函数不断调用返回下一个值,直到提示StopIterable错误结束
可以用isinstance()判断一个对象是否是Iterable对象。
导入from collections import Iterator
from collections import Iterator
print(isinstance([], Iterator)) #返回False
print(isinstance((x for x in range(3)), Iterator)) #返回true
from collections import Iterator
I1 = (x for x in range(5)) # 返回一个迭代器
print(next(I1))
print(next(I1))
print("******* *******")
print(next(I1))
print(next(I1))
print(next(I1))
iter(): 转成Iterator对象
from collections import Iterator
list1 = [1, 2, 3]
I2 = iter(list1)
print(isinstance(list1, Iterator))
print(isinstance(I2, Iterator))
输出结果: