5个让你代码更优雅的Python技巧
写Python时,总有一些小技巧能让代码从“能用”变成“好用”。分享几个我常用的招式。
1. 列表推导式代替循环
想快速生成平方数列表?别再写三四行for循环了:
squares = [x**2 for x in range(10) if x % 2 == 0] # [0, 4, 16, 36, 64]
一行搞定,既清晰又高效。
2. 用zip并行遍历
同时迭代两个列表,用索引麻烦又易错:
names = ["Alice", "Bob"]
scores = [95, 87]
for name, score in zip(names, scores):
print(f"{name}: {score}")
3. 上下文管理器自动清理资源
打开文件总怕忘记close?with替你善后:
with open("data.txt", "r") as f:
content = f.read()
# 出了块级作用域,文件自动关闭
自己也能写支持with的类,实现__enter__和__exit__即可。
4. 生成器节省内存
处理百万级数据时,列表会把所有值塞进内存,而生成器每次只产生一个值:
def fibonacci(n):
a, b = 0, 1
for _ in range(n):
yield a
a, b = b, a + b
用()而不是[]的生成器表达式同理。
5. 用@dataclass减少样板代码
定义简单的数据容器时,别再手动写__init__了:
from dataclasses import dataclass
@dataclass
class Point:
x: float
y: float
自动生成初始化、比较和字符串方法,干净利落。
这些小技巧不会让程序多出神奇功能,但能让你写得更省力、读得更舒服。下次重构代码时,试着用上一两个吧。