python迭代对象和迭代器

一.迭代对象

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

注意:迭代器一定是可迭代对象,迭代对象不一定是迭代器。

猜你喜欢

转载自blog.csdn.net/yangxiaoyan12/article/details/87819740