且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

《Python数据科学指南》——1.17 使用映射函数

更新时间:2022-09-16 15:00:29

本节书摘来自异步社区《Python数据科学指南》一书中的第1章,第1.17节,作者[印度] Gopi Subramanian ,方延风 刘丹 译,更多章节内容可以访问云栖社区“异步社区”公众号查看。

1.17 使用映射函数

map是Python中的内置函数,它使用一个函数和一个可迭代对象作为参数,形式如下。

map(aFunction, iterable)

1.17.1 准备工作

我们来看一个非常简单的使用map函数的示例。

1.17.2 操作方法

我们看看如何使用map函数的示例。

#首先声明一个列表
a =[10,20,30]
#现在,在print语句中调用map函数
print map(lambda x:x**2,a)

1.17.3 工作原理

这和上一节中的代码很相似,map函数有两个参数,第1个是一个函数,第2个是一个序列。本例中,我们使用了匿名函数。

lambda x:x**2

这个函数求出给定输入值的平方值。我们还传递了一个列表给map函数。

map函数对给定列表中的所有元素应用了求平方值函数,并以列表的形式返回结果。输出结果如下。

[100,400,900]

1.17.4 更多内容

同样地,其他函数也可以被应用到列表上。

print map(lambda x:x**3,a)

使用map函数,我们可以把上一节中的代码段改写成单行的代码。

print sum(map(lambda x:x**2,a))
print sum(map(lambda x:x**3,a))

如果应用的函数需要N个参数,则map函数参数也需要N个序列,请看下面的示例以增进理解。

a =[10,20,30]
b = [1,2,3]

print map(pow,a,b)

我们传递了a、b两个序列给map函数,请注意传递的函数是power函数,它需要两个参数。上面示例的输出结果如下。

[10, 400, 27000]
>>>

列表a中的各个元素,被计算出以列表b中相同位置的值为指数的幂值。请注意,两个列表中必须是相同的大小,如果不满足这个条件,Python会自动将较小的那个列表补足空值。这个示例演示的是列表类型,其他任何可迭代对象也都能被传递给map函数。