15 分钟
Python 高级

itertools 模块

掌握 Python 迭代工具库

  • 使用 count/cycle/chain
  • 使用 groupby 和 combinations
  • 掌握常用迭代工具

无限迭代器

示例代码(可运行)

组合与排列

示例代码(可运行)

groupby

示例代码(可运行)
预测输出
import itertools
print(list(itertools.chain([1],[2,3])))
找 Bugcount()是无限迭代器,list()会无限循环。
import itertools list(itertools.count(1))
填空题填写空白处的代码
import itertools print(list(itertools.([1,2,3], 2))) # 两两组合
选择题

permutations([1,2],2) 有几个结果?

资深工程师加餐

底层原理 · 大厂视角 · 工程经验,点卡片展开

with 语句等价于 try/finally:无论正常结束还是中途抛异常,退出时都会执行清理(关文件、释放锁、断开连接)。实现方式有两种:类里写 __enter__/__exit__,或用 contextlib.contextmanager 把生成器变成上下文管理器。凡是「打开了必须关闭/获取了必须释放」的资源,都应该用 with 托管。

挑战任务

itertools挑战

简单+50 XP

用permutations找出3个元素的全排列。

itertools挑战
2 个测试用例

课后作业

密码生成

中等+20 XP

用product生成3位数字密码所有可能。

密码生成
1 个测试用例