Python中的无限迭代器
Python中的迭代器是可以与“ for in loop
”一起使用的任何Python类型。 Python列表、元组、字典和集合都是内置迭代器的示例。但是迭代器对象不必耗尽,有时它可以是无限的。这种类型的迭代器被称为无限迭代器。
Python提供了三种类型的无限迭代器——
- count(start, step):此迭代器从“start”数字开始打印并无限打印。如果提到步骤,则跳过数字,否则步骤默认为 1。请参阅下面的示例,了解其与
for in
循环的使用。例子:
# Python program to demonstrate # infinite iterators import itertools # for in loop for i in itertools.count(5, 5): if i == 35: break else: print(i, end =" ")
输出:
5 10 15 20 25 30
- cycle(iterable):此迭代器从传递的容器中按顺序打印所有值。当所有元素以循环方式打印时,它会重新从头开始打印。
示例 #1:
# Python program to demonstrate # infinite iterators import itertools count = 0 # for in loop for i in itertools.cycle('AB'): if count > 7: break else: print(i, end = " ") count += 1
输出:
A B A B A B A B
示例 #2:使用下一个函数。
# Python program to demonstrate # infinite iterators import itertools l = ['Geeks', 'for', 'Geeks'] # defining iterator iterators = itertools.cycle(l) # for in loop for i in range(6): # Using next function print(next(iterators), end = " ")
输出:
Geeks for Geeks Geeks for Geeks
- repeat(val, num):这个迭代器无限次地重复打印传递的值。如果提到了可选关键字
num
,那么它会重复打印num
次。例子:
# Python code to demonstrate the working of # repeat() # importing "itertools" for iterator operations import itertools # using repeat() to repeatedly print number print ("Printing the numbers repeatedly : ") print (list(itertools.repeat(25, 4)))
输出:
Printing the numbers repeatedly : [25, 25, 25, 25]