首页 > 编程笔记 > Python笔记 阅读:15

Python迭代器的用法(附带实例)

Python 程序中,能够用于 for 循环的对象如下:
所有这些能够用于 for 循环的对象均被称为可迭代对象(Iterable)。

判断一个对象是否为可迭代对象可以使用 isinstance() 方法,例如:
>>> from collections import Iterable
>>> isinstance("",Iterable)
True
>>> isinstance([],Iterable)
True
>>> isinstance((),Iterable)
True
>>> isinstance({},Iterable)
True
>>> isinstance( ( num * num for num in range(5) ),Iterable)
True
在所有可用于 for 循环的对象中,生成器可以被 next() 函数不断调用并生成下一个值,直到抛出 StopIteration 错误表示无法继续为止。

像生成器这种可以被 next() 函数调用并不断生成下一个值的对象被称为迭代器(Iterator)。

对于不是迭代器的可迭代对象,可以使用 iter() 函数将其变为迭代器,例如:
>>> from collections import Iterator
>>> isinstance([],Iterator)
False
>>> isinstance(iter([]),Iterator)
True

可以使用 for 循环遍历迭代器,例如:
list = [1,2,3,4]
for num in iter(list):
    print(num)
执行结果为:

1
2
3
4


也可以使用 next() 函数遍历迭代器,例如:
import sys
list = [1,2,3,4]
iter = iter(list)
while True:
    try:
        print(next(iter))
    except StopIteration:
        sys.exit()
执行结果为:

1
2
3
4

相关文章