欢迎访问宙启技术站
智能推送

Python中的map()函数:一种高阶函数的简介

发布时间:2023-06-01 12:43:50

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()函数,使我们的代码更加优雅和高效。