Python 内置高阶函数:map、filter 与 reduce 用法详解
在 Python 编程中,map、filter 和 reduce 是处理可迭代对象(Iterable)的三大核心内置函数。它们源自函数式编程范式,能够以声明式的方式简洁地处理数据流,避免冗长的循环结构。理解并熟练使用这三个函数,有助于编写更优雅、高效的代码。
1. map 函数
功能说明
map(function, iterable, ...) 接收一个函数和一个或多个可迭代对象作为参数。它将传入的函数依次作用于序列中的每一个元素,并将结果组成一个新的迭代器返回。
基本用法
items = [1, 2, 3, 4, 5]
squared = list(map(lambda x: x**2, items))
print(squared) # 输出:[1, 4, 9, 16, 25]
多参数映射
当传入多个可迭代对象时,map 会将这些对象的对应位置元素打包成元组传递给函数。
nums1 = [1, 2, 3]
nums2 = [4, 5, 6]
result = list(map(lambda x, y: x + y, nums1, nums2))
print(result) # 输出:[5, 7, 9]
Python 3 特性
在 Python 3 中,map() 返回的是一个迭代器(Iterator),而非列表。这意味着它是惰性求值的,只有在遍历或转换为列表时才会真正计算。这对于处理大规模数据非常有利,可以节省内存。
m = map(lambda x: x*2, range(1000000))
# m 此时并未执行计算,仅持有引用
first_item = next(m)
替代方案
虽然 map 很强大,但在简单的转换操作中,列表推导式(List Comprehension)通常更具可读性。
squared = [x** x items]


