5个让你代码更优雅的Python技巧
写Python时,有些小技巧能让代码从“能用”变成“好用”。今天分享几个我常用的“妙招”。
1. 用海象运算符减少重复计算
# 普通写法
data = get_data()
if data:
process(data)
# 海象写法
if (data := get_data()):
process(data)
赋值表达式 := 让代码更紧凑,尤其在循环和条件判断中。
2. 列表推导式加条件过滤
# 过滤并转换一气呵成
squares = [x**2 for x in range(20) if x % 2 == 0]
还能嵌套多个 for 循环,但别太贪心,可读性优先。
3. 使用 zip 并行遍历
names = ["Alice", "Bob", "Charlie"]
scores = [95, 87, 92]
for name, score in zip(names, scores):
print(f"{name}: {score}")
反转 zip(*matrix) 还能轻松转置矩阵。
4. 上下文管理器自动清理资源
with open("file.txt", "r") as f:
content = f.read()
# 文件自动关闭,不用手动 f.close()
自己实现时只要定义 __enter__ 和 __exit__,或用 contextlib.contextmanager 装饰器。
5. 用 functools.lru_cache 加速递归
from functools import lru_cache
@lru_cache(maxsize=128)
def fib(n):
return n if n < 2 else fib(n-1) + fib(n-2)
计算斐波那契数列瞬间从指数级变成线性,适合有重复子问题的场景。
以上技巧都很轻量,但组合使用能让代码更 Pythonic。记住:简洁不等于晦涩,团队可读性永远是第一位。你还有哪些私藏技巧?欢迎交流!