在 Python 里,map()
是一个内置函数,其用途是将指定的函数应用于可迭代对象(像列表、元组等)的每个元素,最终返回一个新的迭代器。此迭代器所包含的元素是原可迭代对象中每个元素经过指定函数处理后的结果。map()
函数是 Python 中非常实用的一个函数式编程工具。
基本语法
map(function, iterable, ...)
参数解释
function
:需要应用到可迭代对象每个元素上的函数。iterable
:一个或多个可迭代对象,例如列表、元组等。
代码示例
以下是一些关于 map()
函数的常见使用示例:
示例 1:将列表中的每个元素都平方
# 定义一个函数,用于计算一个数的平方
def square(x):
return x ** 2
# 定义一个列表
numbers = [1, 2, 3, 4, 5]
# 使用 map 函数将 square 函数应用到 numbers 列表的每个元素上
result = map(square, numbers)
# 将结果转换为列表并打印
print(list(result))
示例 2:将多个列表对应位置的元素相加
# 定义一个函数,用于将两个数相加
def add(x, y):
return x + y
# 定义两个列表
list1 = [1, 2, 3]
list2 = [4, 5, 6]
# 使用 map 函数将 add 函数应用到 list1 和 list2 对应位置的元素上
result = map(add, list1, list2)
# 将结果转换为列表并打印
print(list(result))
示例 3:使用 lambda 函数
# 定义一个列表
numbers = [1, 2, 3, 4, 5]
# 使用 map 函数和 lambda 函数将列表中的每个元素都乘以 2
result = map(lambda x: x * 2, numbers)
# 将结果转换为列表并打印
print(list(result))
示例 4:配合 str
, int
, float
等内建函数
nums_str = ['1', '2', '3']
nums_int = list(map(int, nums_str)) # [1, 2, 3]
floats = list(map(float, ['3.14', '2.71'])) # [3.14, 2.71]
upper = list(map(str.upper, ['a', 'b', 'c'])) # ['A', 'B', 'C']
示例 5:配合 itemgetter
, lambda
, filter
, zip
等
from operator import itemgetter
data = [(0, 'a'), (1, 'b'), (2, 'c')]
second_items = list(map(itemgetter(1), data)) # ['a', 'b', 'c']
注意事项
map()
函数返回的是一个迭代器,所以若要查看具体结果,通常需要将其转换为列表、元组等可直接查看的类型。- 当传入多个可迭代对象时,
map()
函数会以最短的可迭代对象的长度为准进行处理。