大家好,我是正在实战各种 AI 项目的程序员晚枫。
同样的数据处理,为什么别人的代码更快更省内存?
秘密就在列表推导式和生成器表达式。
🚀 列表推导式
基础用法
1 | # 传统循环 |
性能对比
列表推导式比传统循环快 1.5-2 倍,因为:
- 避免了反复调用 append 方法
- 内部使用优化的 C 代码
- 减少了字节码指令数量
1 | import timeit |
💡 生成器表达式
惰性求值
1 | # 列表推导式(占用内存) |
使用场景
| 场景 | 推荐 | 原因 |
|---|---|---|
| 需要多次遍历 | 列表推导式 | 生成器只能遍历一次 |
| 数据量大 | 生成器表达式 | 节省内存 |
| 需要索引访问 | 列表推导式 | 生成器不支持索引 |
| 管道处理 | 生成器表达式 | 惰性求值更适合 |
📊 字典技巧
字典推导式
1 | # 创建字典 |
合并字典(Python 3.9+)
1 | dict1 = {'a': 1, 'b': 2} |
setdefault 技巧
1 | # 统计词频 |
🎯 本讲总结
列表推导式:更快更简洁的数据处理方式。
生成器表达式:惰性求值,节省内存。
字典技巧:推导式、合并、setdefault 等实用技巧。
📚 推荐教材
《Python 编程从入门到实践(第 3 版)》 | 《流畅的 Python(第 2 版)》 | 《CPython 设计与实现》
学习路线: 零基础 → 《从入门到实践》 → 《流畅的 Python》 → 本门课程 → 《CPython 设计与实现》
🔗 课程导航
← 上一讲:Python 数据模型 | 下一讲:集合与映射 →
💬 联系我
| 平台 | 账号/链接 |
|---|---|
| 微信 | 扫码加好友 |
| B 站 | Python 自动化办公社区 |
主营业务:AI 编程培训、企业内训、技术咨询