5个让Python代码更优雅的实用技巧
Python以简洁著称,但用好隐藏技巧能让代码更上一层楼。
1. 用zip并行迭代
names = ["Alice", "Bob"]
scores = [95, 87]
for name, score in zip(names, scores):
print(f"{name}: {score}")
不再需要用下标访问,清晰又安全。
2. 海象运算符 :=(Python 3.8+)
# 传统写法
data = input("输入: ")
while data != "quit":
print(data)
data = input("输入: ")
# 海象写法
while (data := input("输入: ")) != "quit":
print(data)
在条件表达式中赋值,减少重复代码。
3. 使用@lru_cache缓存递归结果
from functools import lru_cache
@lru_cache(maxsize=None)
def fib(n):
return n if n < 2 else fib(n-1) + fib(n-2)
自动记忆函数返回值,斐波那契从指数级降到线性复杂度。
4. 上下文管理器不止用于文件
from contextlib import contextmanager
@contextmanager
def temporary_attr(obj, name, value):
old = getattr(obj, name, None)
setattr(obj, name, value)
try:
yield
finally:
setattr(obj, name, old)
临时修改对象属性,结束后自动恢复。
5. else从句的妙用
- 循环后:未触发
break时执行 - 异常后:未触发
except时执行for n in range(2, 10): for x in range(2, n): if n % x == 0: break else: # 没有被break → 是素数 print(n, "是素数")
这些小技巧能让代码更Pythonic,也更具可读性。下次写Python时试试吧!