`map()`-将函数映射到可迭代对象的每个元素上
发布时间:2023-10-05 02:38:47
map()是Python内置的一个高阶函数,其作用是将一个函数映射到可迭代对象的每个元素上,并返回一个新的可迭代对象,其中每个元素为函数作用后的结果。
map()函数的基本语法如下:
map(function, iterable[, iterable, ...])
其中function为要映射的函数,iterable为需要映射的可迭代对象,可以传入一个或多个可迭代对象作为参数。
下面我们来具体介绍map()函数的使用和一些示例:
1. 使用单个可迭代对象示例:
numbers = [1, 2, 3, 4, 5]
def square(x):
return x**2
squared_numbers = map(square, numbers)
print(list(squared_numbers)) # 输出:[1, 4, 9, 16, 25]
上述示例中,map()函数将square函数映射到numbers列表的每个元素上,得到新的列表squared_numbers,其中每个元素为原列表中对应元素的平方。
2. 使用多个可迭代对象示例:
numbers1 = [1, 2, 3]
numbers2 = [4, 5, 6]
def add(x, y):
return x + y
result = map(add, numbers1, numbers2)
print(list(result)) # 输出:[5, 7, 9]
上述示例中,map()函数将add函数映射到numbers1和numbers2列表的对应元素上,得到新的列表result,其中每个元素为两个列表对应元素的和。
3. 使用lambda函数示例:
numbers = [1, 2, 3, 4, 5] squared_numbers = map(lambda x: x**2, numbers) print(list(squared_numbers)) # 输出:[1, 4, 9, 16, 25]
上述示例中,我们使用了lambda函数来定义映射函数,实现了与 个示例相同的功能。
需要注意的是,map()函数返回的是一个迭代器对象,如果需要结果为列表,可以使用list()函数将迭代器转换为列表。另外,如果传入的可迭代对象长度不一致,map()函数会自动以其中最短的可迭代对象长度为准进行映射。
总结:
map()函数是Python中非常实用的一个函数,可以方便地将一个函数应用到一个可迭代对象的每个元素上,得到一个新的可迭代对象。通过使用map()函数,我们可以减少代码量,提高代码的可读性和简洁性。
