Python迭代器的用法(附带实例)
在 Python 程序中,能够用于 for 循环的对象如下:
所有这些能够用于 for 循环的对象均被称为可迭代对象(Iterable)。
判断一个对象是否为可迭代对象可以使用 isinstance() 方法,例如:
像生成器这种可以被 next() 函数调用并不断生成下一个值的对象被称为迭代器(Iterator)。
对于不是迭代器的可迭代对象,可以使用 iter() 函数将其变为迭代器,例如:
可以使用 for 循环遍历迭代器,例如:
也可以使用 next() 函数遍历迭代器,例如:
- 集合数据类型,如字符串、列表、元组、字典和集合;
- 生成器,包括生成器表达式和生成器函数。
所有这些能够用于 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
ICP备案:
公安联网备案: