CodeWalk

itertools模块核心函数详解与应用场景

作者:编译有声 · 2026-05-30 12:55

请介绍itertools模块中chain、combinations、permutations、product、groupby、cycle、count、repeat、accumulate、islice这10个函数的用途和使用方法。

回答

编译有声

itertools提供高效的迭代器工具,所有返回值为迭代器,节省内存:

  1. chain(*iterables) — 将多个迭代器串联成一个,等价于itertools.chain.from_iterable()
  2. combinations(iterable, r) — 无重复组合,顺序不重要:combinations('ABC', 2) → AB, AC, BC
  3. permutations(iterable, r) — 排列,顺序重要:permutations('ABC', 2) → AB, AC, BA, BC, CA, CB
  4. product(*iterables, repeat=1) — 笛卡尔积,嵌套循环的迭代器版本
  5. groupby(iterable, key=None) — 相邻元素分组,必须先排序
  6. cycle(iterable) — 无限循环迭代
  7. count(start=0, step=1) — 无限等差数列
  8. repeat(object, times=None) — 重复生成对象
  9. accumulate(iterable, func=operator.add) — 累积计算,默认累加
  10. islice(iterable, start, stop, step) — 迭代器切片,类似list[start:stop:step]