您的位置:首页 > 编程语言 > Python开发

Python中map()函数浅析

2014-08-09 16:31 555 查看
1、对可迭代函数'iterable'中的每一个元素应用‘function’方法,将结果作为list返回。

来个例子:

?
就像文档中说的:对hh中的元素做了add100,返回了结果的list。

2、如果给出了额外的可迭代参数,则对每个可迭代参数中的元素‘并行’的应用‘function’。(翻译的不好,这里的关键是‘并行’)

?
看到并行的效果了吧!在每个list中,取出了下标相同的元素,执行了abc()。

3、如果'function'给出的是‘None’,自动假定一个‘identity’函数(这个‘identity’不知道怎么解释,看例子吧



?
用语言解释好像有点拗口

,例子应该很容易理解。

介绍到这里应该差不多了吧!不过还有东西可以挖掘:

stackoverflow上有人说可以这样理解map():

赶快试一下:

哦,输出结果一样。原来map()就是列表推导式啊!要是这样想就错了:这里只是表面现象!再来个例子看看:

这个例子我们在上面看过了,若是用列表推导应该怎么写呢?我想是这样的:

但是看到结果,发现根本不是这么回事:

这便是上面列表推导的结果。怎么会这么多?当然了列表推导可以这么写:

原来如此,若是将三个list看做矩阵的话:
11

22

33

44

55

66

77

88

99

map()只做了列上面的运算,而列表推导(也就是嵌套for循环)做了笛卡尔乘积。

OK,就写到这里。仅个人理解,如有差错请指正,多谢!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: