5个让你爱不释手的Python实用技巧
Python 之所以受欢迎,很大程度上归功于它的简洁与高效。掌握一些“隐藏”技巧,能让你的代码既优雅又省力。
1. 列表推导式:一行代替循环
想生成 0 到 9 的平方列表?别再写四行 for 循环了:
squares = [x**2 for x in range(10)] # [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
加上条件筛选也很自然:[x**2 for x in range(10) if x % 2 == 0]
2. 上下文管理器:自动关闭资源
用 with 打开文件,无需手动调用 close(),即使发生异常也能安全释放:
with open('data.txt', 'r') as f:
content = f.read()
你也可以用 contextlib.contextmanager 装饰器轻松自定义上下文。
3. 使用 zip 并行迭代
同时遍历两个列表,无需下标:
names = ['Alice', 'Bob']
scores = [95, 87]
for name, score in zip(names, scores):
print(f'{name}: {score}')
zip 会在最短列表结束时停止,想补全缺失值可用 itertools.zip_longest。
4. enumerate 拿到索引
遍历列表时同时获取索引和值:
for i, fruit in enumerate(['apple', 'banana', 'cherry']):
print(i, fruit) # 0 apple, 1 banana, 2 cherry
第二个参数可指定起始数字:enumerate(lst, start=1)。
5. 海象运算符 := (Python 3.8+)
在表达式内部赋值,减少重复计算:
# 传统写法
data = get_data()
if data:
process(data)
# 海象写法
if (data := get_data()):
process(data)
尤其适合 while 循环读取数据块、正则匹配等场景。
小结
这些技巧不会让你立刻成为专家,但能让代码更 Pythonic。下次写脚本时,试着用上一两个,你会感受到简洁带来的愉悦。