版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/bubblelone/article/details/69371405
可直接用于for循环的对象,统称为可迭代对象,Iterable
包括集合数据类型,如list、tuple、set、dict、str,还包括生成器
判断一个对象是否为可迭代对象:
>>>from collections import Iterable
>>>isinstance('abc',Iterable)
True
在不使用for循环情况下,生成器可以用next()函数得到每一个返回值,这种可以使用next()函数的可迭代对象,叫迭代器(Iterator)
判断一个对象是否为Iterator对象:
>>>from collections import Iterator
>>>isinstance('abc',Iterator)
False
>>>isinstance((x ** 2 for x in range(5)),Iterator)
True
可以使用iter()函数把Iterable转换成Iterator
>>>a = iter('abc')
>>>isinstance(a,Iterator)
True
for循环本质上是通过调用next()函数来实现的,当循环列表之类的时候,会先自动把列表转换为Iterator