Leyon's Blog

Python 实用技巧分享

整理了一些日常开发中常用的 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。但也要注意不要过度使用,可读性永远是第一位的。

← 返回首页