from itertools import count, cycle, repeat
# count(x): 从 x 开始计数: x, x+1, x+2, x+3...
for i in count(10):
print(i)
if i >= 13:
break
# cycle(iterable) : 通过迭代无限循环
print("")
sum = 0
for i in cycle([1, 2, 3]):
print(i)
sum += i
if sum >= 12:
break
# repeat(x): 无限重复x或重复n次
print("")
for i in repeat("A", 3):
print(i)
Python
itertools
模块是用于处理迭代器的工具集合。 简而言之,迭代器是可以在for循环中使用的数据类型。 Python中最常见的迭代器是列表。有关所有可能的 itertools,请参见 https://docs.python.org/3/library/itertools.html。
product()
该工具计算输入可迭代项的笛卡尔积。
它等效于嵌套的for循环。 例如,
product(A, B)
返 回的结果与((x,y) for x in A for y in B)
相同。permutations()
此工具以所有可能的顺序,以可迭代的方式返回元素的连续长度排列,并且没有重复的元素。
combinations() and combinations_with_replacement()
长度r的元组,按排序顺序。 因此,如果对输入的可迭代对象进行排序,则将按排序顺序生成组合元组。
combinations()
不允许重复的元素,但combinations_with_replacement()
允许。accumulate()
使迭代器返回累加的总和或其他二进制函数的累加结果。
groupby()
创建一个迭代器,从迭代器返回连续的键和组。 键是为每个元素计算键值的函数。 如果未指定或为None,则键默认为标识函数,并返回不变的元素。 通常,可迭代项需要已经在相同的键函数上进行了排序。
无限迭代器:count(), cycle(), repeat()