20 分钟
Python 进阶

列表推导式

一行代码就能创建和转换列表。

  • 掌握列表推导式语法
  • 使用带条件的推导式
  • 理解推导式的可读性边界

为什么需要推导式

传统方式创建平方列表要写4行代码,用列表推导式1行就搞定。

示例代码(可运行)

带条件的推导式

示例代码(可运行)
💡推导式口诀

结果 for 变量 in 可迭代 if 条件。读起来像英语:give me x² for x in numbers if x is even。

字典和集合推导式

示例代码(可运行)
预测输出
print([x*2 for x in range(4)])
找 Bugif-else 在推导式里得放 for 前面,if 筛选得放 for 后面。
nums = [1,2,3] result = [x * 2 for x in nums if x > 1 else 0]
填空题填写空白处的代码
evens = [x x in range(10) x % 2 == 0]
选择题

{i: i**2 for i in range(3)} 的结果?

资深工程师加餐

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

内层函数(或 lambda)捕获的是外层变量本身,而不是定义那一刻的值;循环里定义的多个函数,循环结束后调用往往都拿到最后的值。解决办法是用默认参数 f(x=x) 立即绑定,或用工厂函数包一层。配合 LEGB 作用域顺序(局部→外层→全局→内建)理解,90% 的作用域谜题都能解开。

挑战任务

推导式挑战

简单+50 XP

就用列表推导式,找1到50里能被3整除的数的平方。

推导式挑战
2 个测试用例

课后作业

词频统计

中等+20 XP

就这么简单。用字典推导式统计字符串里每个字符出现的次数。

词频统计
1 个测试用例