Python中的map()函数:一种高阶函数的简介
Python中的map()函数是一种高阶函数,常用于处理列表、元组、字典等可迭代对象。它的作用是将一个函数应用到可迭代对象的每一个元素,返回一个新的迭代器,其中包含了经过函数处理后的每一个元素。
map()函数的语法格式如下:
map(function, iterable, ...)
其中,function是要执行的函数,可以是自定义函数或内置函数;iterable是可迭代对象,如列表、元组、字典等。
注意:map()函数返回一个迭代器,需用list()或tuple()等函数转换为列表或元组才能查看结果。
下面我们来看一些具体的例子。
### 例子1 将列表中的每个元素加1
nums = [1, 2, 3, 4, 5]
def add_one(x):
return x + 1
new_nums = list(map(add_one, nums))
print(new_nums) # 输出 [2, 3, 4, 5, 6]
上述代码将函数add_one应用到列表nums的每一个元素上,返回一个新的迭代器new_nums,并将它转换为列表输出。
### 例子2 计算两个列表中相同位置元素之和
a = [1, 2, 3] b = [4, 5, 6] new_list = list(map(lambda x,y:x+y, a, b)) print(new_list) # 输出 [5, 7, 9]
上述代码使用了lambda表达式来定义一个简单的函数,将两个列表中相同位置的元素相加,并返回一个新的迭代器new_list,并将它转换为列表输出。
### 例子3 将字符串中的元素转换为整数
s = '12345' new_list = list(map(int, s)) print(new_list) # 输出 [1, 2, 3, 4, 5]
上述代码将内置函数int应用到字符串s的每一个元素上,将其转换为整数,并返回一个新的迭代器new_list。
### 例子4 将列表中的函数作为参数传给map()
def square(x):
return x * x
def cube(x):
return x * x * x
funcs = [square, cube]
for i in range(5):
value = list(map(lambda x:x(i), funcs))
print(value) # 输出 [(0, 0), (1, 1), (4, 8), (9, 27), (16, 64)]
上述代码将两个函数square和cube分别存储在列表funcs中,并将其作为参数传递给map()函数,将其应用到变量i的各个值上,生成一个新的元组迭代器,并将它转换为列表输出。
总结:
通过本文的介绍,我们了解到了Python中的map()函数是一种高阶函数,常用于处理可迭代对象。它可以将一个函数应用于可迭代对象的每一个元素,并返回一个新的迭代器,其中包含了经过函数处理后的每一个元素。在实际应用中,我们可以根据需求来灵活运用map()函数,使我们的代码更加优雅和高效。
