Python 面试题
目录

Python 中如何使用 itertools 模块进行高效的迭代器操作?

· 约 4 分钟读完 · 第 156 / 171 章

推荐答案

本题详细解读

1. 无限迭代器

itertools.count(start=0, step=1) 生成一个无限递增的整数序列,从 start 开始,每次增加 step。可以通过 next() 函数逐个获取值。

2. 有限迭代器

itertools.islice(iterable, start, stop[, step]) 用于对无限迭代器进行切片操作,返回一个有限长度的迭代器。start 和 stop 分别表示切片的起始和结束位置,step 表示步长。

3. 组合迭代器

itertools.combinations(iterable, r) 生成从 iterable 中选取 r 个元素的所有组合,组合中的元素顺序不重要。

4. 排列迭代器

itertools.permutations(iterable, r) 生成从 iterable 中选取 r 个元素的所有排列,排列中的元素顺序重要。

5. 笛卡尔积

itertools.product(*iterables, repeat=1) 生成多个可迭代对象的笛卡尔积。repeat 参数用于指定每个可迭代对象的重复次数。

6. 分组迭代器

itertools.groupby(iterable, key=None) 对 iterable 中的连续相同元素进行分组。key 是一个函数,用于指定分组依据。注意,groupby 要求输入数据已经排序。

通过 itertools 模块,可以高效地处理各种迭代器操作,避免内存浪费并提高代码的可读性。