
「一行代码」解决实际问题是Python 的灵魂。本文这 15 个操作全部满足三个标准——真实常用、一行完成、背后有一个值得学的语言特性。
收藏当速查表用,也可以当「功力测试」:能秒懂 12 个以上,你的 Python 已经越过中级线。
1. 一行交换两个变量(解包)
a, b = b, a
2. 一行统计出现次数(Counter)
from collections import Counter
top = Counter(words).most_common(3)
3. 一行列表去重且保序(dict.fromkeys)
unique = list(dict.fromkeys(data))
4. 一行字符串反转
reversed_text = text[::-1]
5. 一行判断「列表里有没有满足条件的元素」
has_vip = any(u.vip for u in users) # 存在即 True
all_paid = all(u.paid for u in users) # 全部才 True
6. 一行取最大值的「键」(max 的 key)
best = max(orders, key=lambda o: o.amount)
7. 一行合并字典(| 运算符,3.9+)
merged = defaults | overrides # 后者覆盖前者
8. 一行文件全部读入并去空行
lines = [l.strip() for l in open("data.txt", encoding="utf-8") if l.strip()]
9. 一行求和 + 一步聚合(sum 的 start 参数)
total = sum(o.amount for o in orders) # 生成器省内存
total_cn = sum(o.amount for o in orders, ) # ❌ 语法错
total_with_tax = sum((o.amount for o in orders), start=100)
10. 一行 zip 配对转字典
lookup = dict(zip(keys, values))
11. 一行展平二维列表(推导式)
flat = [x for row in matrix for x in row]
12. 一行字符串模板替换(f-string 的 = 调试模式)
print(f"{total=:.2f}") # total=1234.57 —— 变量名+值一起打印
13. 一行检查文件是否存在并读取(pathlib)
content = Path("config.json").read_text(encoding="utf-8") if Path("config.json").exists() else "{}"
14. 一行 JSON 与对象互转(Pydantic 的 model_dump)
data = json.loads(Path("user.json").read_text(encoding="utf-8"))
user = User(**data) # dict 解包直接进模型
json_out = json.dumps(user.model_dump(), ensure_ascii=False)
15. 一行洗牌 / 采样(random 模块)
random.shuffle(deck) # 原地洗牌
sample = random.sample(users, k=5) # 无放回抽 5 个(不重复!)
速查表(按场景)
变量/结构 a,b = b,a | dict(zip(k,v)) | defaults | overrides
筛选判断 any(... for ...) | all(...) | max(xs, key=...)
清洗转换 list(dict.fromkeys(xs)) | s[::-1] | [x for r in m for x in r]
聚合统计 Counter(words).most_common(3) | sum(gen, start=0)
调试输出 f"{var=:.2f}" | print(*xs, sep=", ")
随机抽样 random.sample(xs, k=5)
文件JSON Path(...).read_text() | User(**data)
最后说句实在话:这些代码——每个让你「原来还能这样」的瞬间,都对应一个值得内化的特性(解包、生成器、key 函数、f-string 调试模式)。
以上就是“Python 一行代码的 15 个经典操作:又短又好用,还能涨功力”的详细内容,想要了解更多Python教程欢迎持续关注编程学习网。
扫码二维码 获取免费视频学习资料

- 本文固定链接: http://www.phpxs.com/post/14675/
- 转载请注明:转载必须在正文中标注并保留原文链接
- 扫码: 扫上方二维码获取免费视频资料