一.迭代对象
1.概念
迭代对象:可以直接作用于for循环的对象统称为可迭代对象:Iterable。
2.可以直接作用于for循环的数据类型
(1)集合类数据类型,如list, tuple, dict, set, str等
(2)generator,包括生成器和带yield的generator function.
以上这些直接作用于for循环的对象统称为可迭代对象:Iterable.
3.判断一个对象是不是可迭代对象(Iterable)
可以使用isinstance,需要导入模块
from collections import Iterator
from collections import Iterable
(1)判断 str 类型是不是可迭代对象
isinstance(’’,Iterable)
isinstance(‘abc’,Iterable)
print(isinstance(’’,Iterable)) # True
print(isinstance(‘abc’,Iterable)) # True
(2)判断 list 类型是不是可迭代对象
isinstance([],Iterable)
isinstance([1,2,3,4],Iterable)
print(isinstance([],Iterable)) # True
print(isinstance([1,2,3,4],Iterable)) # True
(3)判断 元组 类型是不是可迭代对象
isinstance(tuple(),Iterable)
isinstance((1,2,3,4),Iterable)
print(isinstance(tuple(),Iterable))
print(isinstance((1,2,3,4),Iterable))
(4)判断 集合 类型是不是可迭代对象
isinstance(set(),Iterable)
isinstance((1,2,3,4),Iterable)
print(isinstance(set(),Iterable)) # True
print(isinstance((1,2,3,4),Iterable)) # True
(5)判断 字典 类型是不是可迭代对象
isinstance({},Iterable)
isinstance({‘name’:‘wanghua’,‘age’:28},Iterable)
print(isinstance({},Iterable)) # True
print(isinstance({‘name’:‘wanghua’,‘age’:28},Iterable)) # True
(6)判断 for 循环是不是可迭代对象
isinstance((x for x in range(10)), Iterable)
print(isinstance((x for x in range(10)), Iterator)) # True
二. 迭代器
1.概念
迭代器:可以被next()函数调用并不断返回下一个值的对象称为迭代器:Iterator。
2.判断一个对象是否是迭代器(Iterator). 可以使用isinstance,需要导入模块from collections import Iterator
3.判断 for 循环是不是迭代器
isinstance((x for x in range(10)), Iterator)
print(isinstance((x for x in range(10)), Iterator)) # True
注意:迭代器一定是可迭代对象,迭代对象不一定是迭代器。