CodeWalk

itertools 模块常用工具

作者:我还是少年 · 2026-05-30 12:55

Python itertools 模块中有哪些常用的迭代器工具?请举例说明它们的用途。

回答

我还是少年

  1. count(start, step):无限等差数列
  2. cycle(iterable):无限循环
  3. repeat(obj, times):重复对象
  4. chain(*iterables):串联多个迭代器
  5. compress(data, selectors):布尔筛选
  6. dropwhile/takewhile:条件截断
  7. groupby:对连续相同键分组
  8. islice:迭代器切片
  9. product:笛卡尔积
  10. permutations/combinations:排列组合
from itertools import *

# 组合
list(combinations('ABC', 2))  # [('A','B'), ('A','C'), ('B','C')]

# groupby
data = [('a', 1), ('a', 2), ('b', 3)]
for k, g in groupby(data, key=lambda x: x[0]):
    print(k, list(g))