📅  最后修改于: 2023-12-03 15:19:30.349000             🧑  作者: Mango
在Python中,迭代器(Iterator)是一个非常有用的工具,它可以让我们遍历一个序列,而不用知道这个序列的长度。当然,Python中的迭代器不仅仅局限于迭代有限序列,还有一些特殊的无限迭代器。
Python中的itertools模块提供了一些非常有用的迭代器,包括一些无限迭代器,如下所示:
count(start=0, step=1)
这个迭代器从指定的start开始,每次增加指定的step。如果没有给定start,则默认从0开始。示例代码如下:
import itertools
for i in itertools.count(1, 2):
print(i)
这个程序会无限循环,输出从1开始,每次增加2的整数序列。
cycle(iterable)
这个迭代器会无限重复给定的序列,例如:
import itertools
for i in itertools.cycle('abc'):
print(i)
这个程序会无限循环,输出a、b、c、a、b、c……的序列。
repeat(element, times=None)
这个迭代器会无限重复给定的元素,或者重复给定的元素指定的次数。例如:
import itertools
for i in itertools.repeat('hello', 3):
print(i)
这个程序会输出3次'hello'。
除了itertools模块中提供的无限迭代器以外,我们还可以自己定义无限迭代器。只需要定义一个无限循环的生成器函数即可。例如,下面这个生成器函数会不断返回自增的整数:
def infinite_sequence():
num = 0
while True:
yield num
num += 1
这个生成器函数可以用来生成一个无限整数序列,例如:
for i in infinite_sequence():
print(i)
这个程序会无限循环,输出从0开始的整数序列。
Python中的无限迭代器可以用来生成一些特殊的序列,如整数序列、重复序列等。我们可以使用itertools模块中提供的无限迭代器,也可以自己定义无限迭代器。这些迭代器在处理一些特殊问题时非常有用。