Python itertools模块代码范例

  • Post category:Python

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 还有很多函数可以用来处理、生成迭代器,欢迎继续探索。