Python itertools 模块提供了很多用于生成迭代器的函数,这些函数可以用来迭代列表、数组、字符串等类型的数据,同时也可以用于各类算法中的迭代处理。这里我们提供 itertools 模块的使用方法。
1. itertools模块常用函数
下面列出 itertools 模块中常用的几个函数:
- itertools.chain(*iterables):将多个迭代器连接起来,生成一个迭代器
- itertools.combinations(iterable, r):生成元素取自 iterable 的长度为 r 的所有组合
- itertools.permutations(iterable, r=None):生成元素取自 iterable 的所有可能排列的元组
- itertools.product(*iterables, repeat=1):生成多个迭代器的笛卡尔积
- itertools.repeat(object, times=None):生成一个重复 object 的迭代器,times 表示重复次数。
2. itertools模块示例说明
示例1:使用 itertools.chain 将多个列表连接
下面的示例代码,调用 itertools.chain 函数,将多个列表连接成一个迭代器,并利用 for 循环逐一输出迭代器里的全部元素。
import itertools
a = [1, 2, 3]
b = ['a', 'b', 'c']
c = [True, False]
result = itertools.chain(a, b, c)
for i in result:
print(i)
运行结果:
1
2
3
a
b
c
True
False
示例2:使用 itertools.combinations 生成列表中任意两个元素的组合
下面的示例代码,调用 itertools.combinations 函数生成 list1 中任意两个元素的组合,并逐一输出这些组合。
import itertools
list1 = ['a', 'b', 'c', 'd']
result = itertools.combinations(list1, 2)
for i in result:
print(i)
运行结果:
('a', 'b')
('a', 'c')
('a', 'd')
('b', 'c')
('b', 'd')
('c', 'd')
以上两例仅仅是 itertools 模块的冰山一角,itertools 还有很多函数可以用来处理、生成迭代器,欢迎继续探索。