page contents

Python 一行代码的 15 个经典操作:又短又好用,还能涨功力

「一行代码」解决实际问题是Python 的灵魂。本文这 15 个操作全部满足三个标准——真实常用、一行完成、背后有一个值得学的语言特性。

attachments-2026-11-MUZK0b366ae93b0d578d7.png

「一行代码」解决实际问题是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编程语言,推荐大家关注一个微信公众号:Python编程学习圈。每天分享行业资讯、技术干货供大家阅读,关注即可免费领取整套Python入门到进阶的学习资料以及教程,感兴趣的小伙伴赶紧行动起来吧。

attachments-2022-05-rLS4AIF8628ee5f3b7e12.jpg

 

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
Pack
Pack

2553 篇文章

作家榜 »

  1. Pack 2553 文章
  2. 轩辕小不懂 2403 文章
  3. 小柒 2228 文章
  4. Nen 576 文章
  5. 王昭君 216 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章