# Author: Allenlee
'''
可以直接作用于for循环的数据类型有以下几种:
一类是集合数据类型,如list、tuple、dict、set、str等;
一类是generator,包括生成器和带yield的generator function。
这些可以直接作用于for循环的对象统称为可迭代对象: Iterable。
可以使用isinstance()判断一个对象是否是Iterable对象。
'''
from collections import Iterable
print(isinstance([], Iterable)) #True
print(isinstance({}, Iterable)) #True
print(isinstance('abc', Iterable)) #True
print(isinstance((x for x in range(10)), Iterable)) #True
print(isinstance(100, Iterable)) #False
'''
可以被next()函数调用并不断返回下一个值的对象称为迭代器: Iterator。
可以使用isinstance()判断一个对象是否是Iterator对象。
'''
from collections import Iterator
print (isinstance((x for x in range(10)), Iterator)) #True
print (isinstance([], Iterator)) #False
print (isinstance({}, Iterator)) #False
print (isinstance('abc', Iterator)) #False
'''
生成器都是Iterator对象,但list、dict、str虽然是Iterable,却不是Iterator。
把list、dict、str等Iterable变成Iterator可以使用iter()函数。
'''
print (isinstance(iter([]), Iterator)) #True
print (isinstance(iter({}), Iterator)) #True
print (isinstance(iter('abc'), Iterator)) #True
Python学习记录W04-13:迭代器
最新推荐文章于 2023-03-07 08:44:49 发布