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

介绍 Python 的 map() 函数

发布时间:2023-05-28 14:36:15

Python 的 map() 函数是一种非常常用的函数,它可以将一个函数作用于一个Iterable类型的序列,返回一个新的序列,其中每个元素都是原序列中对应元素通过函数处理后得到的结果。本文将详细介绍 Python 的 map() 函数。

1. 函数定义

map() 函数的定义如下:

map(function, iterable, …)

其中:

- function:传入的函数,可以是内置函数、自定义函数或者 lambda 表达式

- iterable:一个Iterable类型的序列,可以是列表、元组、集合等

2. 函数返回

map() 函数的返回值是一个迭代器对象,需要使用list()函数将其转换为列表(或者使用for循环进行遍历)。

3. 函数作用

map() 函数的作用就是循环遍历 iterable 中的元素,将每个元素传入 function 函数中进行处理,并将处理结果保存到一个新的序列中。

4. 实例

下面举一个例子来说明 map() 函数的用法:

def square(x):
    return x * x

a = [1, 2, 3, 4, 5]
b = map(square, a)

print(list(b))

以上代码中,我们定义了一个名为 square 的函数,用来计算一个数的平方。接着,定义了一个列表 a,其中存储了一些数字。调用 map() 函数,将 square 函数作用于 a 中的每一个元素,并将结果保存到 b 中。最后使用 list() 函数将 b 转换为列表并输出。

执行结果为:

[1, 4, 9, 16, 25]

可以看到,b 中存储了 a 中每个元素的平方结果。

5. 注意事项

需要注意的是,当 iterable 中的元素为多个时,function 函数需要支持多个参数。例如:

def add(x, y):
    return x + y

a = [1, 2, 3, 4]
b = [10, 20, 30, 40]
c = map(add, a, b)

print(list(c))

以上代码中,我们定义了一个名为 add 的函数,用来计算两个数的和。接着,定义了两个列表 a 和 b,其中存储了一些数字。调用 map() 函数,将 add 函数作用于 a 和 b 中的每一对相同索引元素并将结果保存到 c 中。最后使用 list() 函数将 c 转换为列表并输出。

执行结果为:

[11, 22, 33, 44]

可以看到,c 中存储了 a 和 b 中每一对索引相同元素的和的结果。

6. lambda 表达式

除了定义函数之外,也可以使用 lambda 表达式作为函数参数。例如:

a = [1, 2, 3, 4, 5]
b = map(lambda x: x * x, a)

print(list(b))

以上代码中,我们使用了 lambda 表达式来计算一个数的平方,然后将其作为 map() 函数的参数。其余部分和实例 4 相同。

执行结果为:

[1, 4, 9, 16, 25]

7. 总结

Python 的 map() 函数是一种非常实用的函数,可以快速对 Iterable 类型的序列进行处理。需要注意的是,当相应的函数需要支持多个参数时,Iterable 序列需要有相同元素数量,否则会出现错误。除了自定义函数之外,还可以使用 lambda 表达式作为参数来传入 map() 函数。