介绍 Python 的 map() 函数
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() 函数。
