Python 内建函数列表 > Python 的内置函数 map

Python 的内置函数 map() 是一个高阶函数,它允许对一个可迭代对象(如列表、元组等)的所有元素应用指定的函数,并返回一个 map 对象(可迭代对象)。其基本语法是:

map(function, iterable, ...)

主要特点:

  1. 惰性计算(Lazy Evaluation):map 对象不会立即执行计算,只有在需要时才会真正处理数据

  2. 多参数支持:可以同时处理多个可迭代对象

  3. 函数式编程特性:配合 lambda 表达式使用尤为方便

常见使用场景:

  1. 简单数值转换

numbers = [1, 2, 3, 4]
squared = map(lambda x: x**2, numbers)
print(list(squared))  # 输出:[1, 4, 9, 16]
  1. 类型转换

str_numbers = ['1', '2', '3']
int_numbers = map(int, str_numbers)
print(list(int_numbers))  # 输出:[1, 2, 3]

注意事项:

  1. map 对象是迭代器,只能遍历一次。如果需要多次使用,应转换为列表

  2. 当多个可迭代对象长度不一致时,以最短的对象为准

  3. 在 Python 3 中返回的是 map 对象,而在 Python 2 中直接返回列表

替代方案: 对于简单场景,列表推导式通常更加直观:

# 等价于 map(lambda x: x**2, numbers)
squared = [x**2 for x in numbers]

但在处理多个可迭代对象或需要复用函数时,map 仍然有其优势。