7. 推导式
推导式(Comprehension)是 Python 的一大特色,用一行代码简洁地创建列表、字典或集合。
列表推导式
python
# 基本语法:[表达式 for 变量 in 可迭代对象 if 条件]
# 生成 0~4 的列表
x = [i for i in range(5)]
# [0, 1, 2, 3, 4]
# 筛选偶数
evens = [i for i in range(10) if i % 2 == 0]
# [0, 2, 4, 6, 8]
# 对每个元素求平方
squares = [n ** 2 for n in [1, 2, 3, 4, 5]]
# [1, 4, 9, 16, 25]
# 等价的传统写法(对比)
squares = []
for n in [1, 2, 3, 4, 5]:
squares.append(n ** 2)
字典推导式
python
# 数字到字符串的映射
d = {i: str(i) for i in range(5)}
# {0: '0', 1: '1', 2: '2', 3: '3', 4: '4'}
# 翻转字典的键和值
original = {'a': 1, 'b': 2, 'c': 3}
flipped = {v: k for k, v in original.items()}
# {1: 'a', 2: 'b', 3: 'c'}
集合推导式
python
# 去除列表中的重复项
unique = {x for x in [1, 2, 2, 3, 4, 5, 5]}
# {1, 2, 3, 4, 5}
💡 推导式的优势
推导式比传统 for 循环 + append 更简洁、更高效。但不要过度使用——如果逻辑太复杂(嵌套超过2层、条件太多),还是用传统循环更清晰。