上一章讲了Python中的高阶函数,下面介绍Python的几个重要的内置高阶函数。
首先介绍 map() 函数。map() 函数接收两个参数,第一个参数是一个函数,第二个参数是一个Iterable。map 将传入的函数依次作用到序列的每个元素,并把结果作为新的 Iterator 返回。
下面举个例子,如果我们想把一个 list 中的所有元素加1,有两种办法。一种是迭代这个 list,通过 for 循环实现;另一种就是通过 map() 函数。
通过for循环实现的代码如下:
# 通过循环的方式,将 list 中的所有元素加1
L = []
li = [0, 1, 2, 3, 4, 5, 6, 7]
for x in li:
L.append(x + 1)
# 结果
# L = [1, 2, 3, 4, 5, 6, 7, 8]
通过 map() 函数实现的代码如下:
# 通过 map() 函数将 list 中的所有元素加1
def f(x):
return x + 1
li = [0, 1, 2, 3, 4, 5, 6, 7]
# 注意,map返回的是一个 Iterator
r = map(f, li)
下面代码更能体现 map() 函数的强大:
# 将一个 list 中的所有整数变成字符串
list(map(str, [0, 1, 2, 3, 4, 5, 6, 7]))