整理了一些日常开发中常用的 Python 技巧,分享给大家。
1. 列表推导式
用一行代码替代多行循环:
# 传统写法
squares = []
for x in range(10):
squares.append(x ** 2)
# 列表推导式
squares = [x ** 2 for x in range(10)]
# 带条件过滤
evens = [x for x in range(20) if x % 2 == 0]
2. 海象运算符
Python 3.8 引入的 walrus operator :=,在条件判断中同时赋值和检查:
# 海象运算符
data = [1, 2, 3, 4, 5]
if (n := len(data)) > 3:
print(f"列表有 {n} 个元素")
3. f-string 的高级用法
name = "Leyon"
price = 42.5
# 格式化
print(f"Hello, {name}!")
# 表达式
print(f"2 + 3 = {2 + 3}")
# 格式化数字
print(f"价格: ¥{price:.2f}")
# 对齐
for name, score in [("Alice", 95), ("Bob", 88)]:
print(f"{name:>10} : {score}")
4. 上下文管理器
用 with 语句优雅地管理资源:
from contextlib import contextmanager
@contextmanager
def timer(label):
import time
start = time.time()
yield
print(f"{label}: {time.time() - start:.2f}s")
# 使用
with timer("排序耗时"):
sorted(range(1000000, 0, -1))
5. 数据解包
# 交换变量
a, b = b, a
# 星号解包
first, *middle, last = [1, 2, 3, 4, 5]
# middle = [2, 3, 4]
# 字典合并 (3.9+)
dict1 = {"a": 1}
dict2 = {"b": 2}
merged = dict1 | dict2
总结
Python 的语法糖很多,善用这些技巧可以让代码更简洁、更 Pythonic。但也要注意不要过度使用,可读性永远是第一位的。