在了解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]]