Bootstrap

Python 推导式终极指南:从基础到真实项目应用

一、理解推导式的本质

1.1 什么是推导式?

推导式是 Python 的语法糖,用声明式语法替代命令式循环,实现快速构建数据容器。其核心优势:

# 传统循环
result = []
for item in iterable:
    if condition:
        result.append(operation(item))

# 推导式版本
result = [operation(item) for item in iterable if condition]

1.2 四大推导式类型对比

类型 符号 输出类型 典型应用场景
列表推导式 [] list 数据转换/过滤
字典推导式 {} dict 键值重组/数据映射
集合推导式 {} set 去重/集合运算
生成器表达式 () generator 大数据流处理

二、列表推导式深度解析

2.1 基础应用

# 生成 0-9 的平方列表
squares = [x**2 for x in range(10)]
# [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

2.2 条件过滤

# 仅保留偶数平方
even_squares = [x**2 for x in range(10) if x%2 == 0]
# [0, 4, 16, 36, 64]

2.3 嵌套循环

# 矩阵展平
matrix = [[1,2,3], [4,5,6], [7,8,9]]
flat = [num for row in matrix for num in row]
# [1,2,3,4,5,6,7,8,9]
  1. 过滤行:将条件放在行的循环之后,元素的循环之前。

    # 仅处理长度大于2的行
    flat = [num for row in matrix if len(row) > 2 for num in row]
    
  2. 过滤元素:将条件放在元素的循环之后。

    # 仅保留偶数
    flat = [num for row in matrix for num in row if num % 2 == 0]
    
  3. 同时过滤行和元素

    # 处理非空行中的正数
    flat = [num for row in matrix if row for num in row if num > 0
;