跳到主要内容

🧰 函数式编程工具:

Python 提供了一些函数式编程工具函数,可以配合高阶函数对数据进行灵活的处理,让代码更简洁、高效。

这些工具常配合 匿名(lambda) 表达式一起使用。

  • map :对序列中每个元素应用函数
  • reduce :筛选满足条件的元素
  • filter :累计处理元素(需导入)
  • sorted :排序

⭐️ 此节学习的函数,都是Python 内置函数 ⭐️


✅ 1. 映射 map(function, iterable)

作用:将 function 作用于 iterable 的每个元素,返回一个 map 对象(可迭代)。

平方(n): 返回 n * n

结果 = 映射(平方, [1, 2, 3, 4])
打印(list(结果)) # 输出: [1, 4, 9, 16]

✅ 2. 过滤 filter(function, iterable)

作用:把 function 作用于每个元素,返回值为 True 的元素会保留

验证_偶数(n): 返回 n % 2 == 0

结果 = 过滤(验证_偶数, [1, 2, 3, 4, 5, 6])
打印(列表(结果)) # 输出: [2, 4, 6]

✅ 3. 归约 reduce(function, iterable)

作用:对序列中的元素进行“连续两两归约”操作,直到变为一个结果。

需要从 functools 模块导入:

functools 导入 归约

(x, y): 返回 x + y

结果 = 归约(, [1, 2, 3, 4])
打印(结果) # 输出: 10

可用于累乘、拼接字符串等。


✅ 4. 排序 sorted(iterable, key=函数, reverse=布尔值)

作用:对序列排序,可通过 key 指定排序方式。

# 按绝对值排序
列表 = [-5, 3, -1, 10]
排序后 = 排序(列表, key=abs)
打印(排序后) # [-1, 3, -5, 10]

还可以使用自定义函数或 lambda 作为 key


✅ 函数式工具对比总结

函数英文用途返回值类型
映射(f, seq)map(f, seq)映射每个元素map 对象(可转 list)
过滤(f, seq)filter(f, seq)筛选符合条件的元素filter 对象
归约(f, seq)reduce(f, seq)折叠序列成单个值最终结果
排序(seq, key)sorted(seq, key)排序排序后的列表