python的map函数

来源:互联网 发布:机器人及人工智能大赛 编辑:程序博客网 时间:2024/05/29 16:47

在了解map函数前,必须知道map函数是序列的内置函数。并且序列的内置函数还有filter、reduce。那么python中序列只的是哪些?答:列表、元祖、字符串、Unicode字符串、buffer对象和xrange对象。下面我只通过列表来展示map函数的使用。功能举例:当需要多对列表中的每个元素进行某种操作时,map函数可以直接代替循环。

1、格式:

   map(function,seq),仅有一个seq

   map(function,(seq1,seq2,.....),有多个seq

   map(None,(seq1,seq2,....)),函数为None

2、举例

例1:

def add(x):
     return x+x
aa=[1,3,3,4,5,6]
cc=map(add,aa)

结果输出:

[2, 6, 6, 8, 10, 12]


例2:

def add(x):
     return x+x
aa=[1,3,3,4,5,6]
bb=[7,8,8,8,78]
cc=map(add,(aa,bb))

结果输出:

[[1, 3, 3, 4, 5, 6, 1, 3, 3, 4, 5, 6], [7, 8, 8, 8, 78, 7, 8, 8, 8, 78]]

总结:可见无论后面有多少个列表,均会对每个列表各自进行函数定义的操作,上述函数使每个列表与自身相加。(此处需要注意,为什么例1和例2均是相加,但是结果却不一样。因为例1种是将列表种的每个元素作为相加的对象。但是例2中是将列表作为对象相加的。

例3:

当参数种函数为None时,此时的map相当以zip,将两个列表分别作为元素组成新的列表。例如:

aa=[1,3,3,4,5,6]
bb=[7,8,8,8,78]
dd=map(None,(aa,bb))

结果输出:[[1, 3, 3, 4, 5, 6], [7, 8, 8, 8, 78]]