当我们需要对多个序列进行相应运算时,使用Python内置函数map()
就非常方便。map()
可以将一个或多个序列(或可迭代对象)中的元素进行相应运算,并返回一个新的可迭代对象。
下面我们逐步讲解map()
处理多个序列的使用方法:
函数参数
function
:一个函数对象,接收与参数对应个数的序列元素,并返回运算结果。iterables
:一个或多个序列(或可迭代对象),按照相应的索引位置进行参数传递。
返回值
map()
函数返回一个可迭代对象,包含每个序列相应位置所运算后的结果。
示例1: 对多个序列元素相加
下面我们使用map()
将多个序列的元素相加,返回一个包含每个位置元素相加的结果的新列表。
def sum_x_y(x, y):
return x + y
list_x = [1, 2, 3, 4, 5]
list_y = [2, 4, 6, 8, 10]
result_list = list(map(sum_x_y, list_x, list_y))
print(result_list)
输出结果如下:
[3, 6, 9, 12, 15]
解释如下:
sum_x_y
函数接收两个参数,分别为x
、y
,并将它们相加后返回结果。map()
对list_x
和list_y
两个序列进行参数的传递,并对每个位置所对应的元素进行sum_x_y()
函数的调用。- 最终
result_list
包含每个位置元素相加后的结果。
示例2: 对多个序列的元素进行聚合
接下来,我们使用map()
将多个序列的元素聚合成一个元组,返回一个包含每个位置元素聚合成元组的可迭代对象。
list_x = [1, 2, 3, 4, 5]
list_y = [2, 4, 6, 8, 10]
result_tuple = tuple(map(lambda x, y: (x, y), list_x, list_y))
print(result_tuple)
输出结果如下:
((1, 2), (2, 4), (3, 6), (4, 8), (5, 10))
解释如下:
lambda
表达式接收两个参数,分别为x
、y
,并将它们聚合成一个元组后返回结果。map()
对list_x
和list_y
两个序列进行参数的传递,并对每个位置相应元素进行lambda
表达式的调用。- 最终
result_tuple
包含每个位置元素聚合成元组的结果。
综上所述,以上就是使用Python map()
处理多个序列的完整攻略,并包含了两个示例,分别对多个序列元素相加和聚合的情况进行了说明。