map是Python的内置函数
使用的方式如下:
list = map(func, iter)
其中, func是函数, iter是可迭代的序列。它的功能是:将一个序列中的每一个元素应用传入的函数, 并返回一个包含所有函数调用结果的一个列表.举一个例子, 我有一个列表l, 我们要求把列表中的所有元素都加10, 整我们会这实现
l = [1, 2, 3]
l1 = []
for i in l:
print(l)
l1.append(i + 10)
print(l1)结果如下:
[1, 2, 3]
[1, 2, 3]
[1, 2, 3]
[11, 12, 13]
如果我们使用的map函数的话,我可以先定义个一个Inc的函数用于加10,然后在调用map行数 。
def inc(x):
return x + 10
print(list(map(inc, l)))
结果如下:
[11, 12, 13]
这里我大致流程应该是这样:
map函数会将l列表中的没有都映射都inc函数, 又将每一个返回的结果放在一个列表中, 但是这个结果列表在python3中需要调用list函数进行强制显示, 如果是python2则不用如果我们使用lambda函数,我们是可以减少一定的代码量的, 比如:print(list(map((lambda x: x + 10), l)))这样的我们完全可以一行搞定。其实我们还可以使用这样的列表解析,来完成这个需求:
print([i + 10 for i in l])
结果如下:
[11, 12, 13]
显然效果是一样的, 但是map作为内置函数, 在性能更快一些map函数还能使用多个序列作为参数, map会找到相应序列中的对应位置的元素作为参数传入函数中
#比如我们要计算两个序列中的对应位置的加和, 等到一个加和后的结果:
l2 = [2, 3]
l3 = [4, 5]
print(list(map((lambda x, y: x + y), l2, l3)))结果如下:
[6, 8]