map(function, iterable, …)function是一个函数名,可以是python内置的,也可以是自定义的。iterable是可迭代对象。
函数的功能:将iterable中的每一个元素都应用在function上。在python2中返回的是一个列表,python3中要用list作转换。
>>> a=[1,2,3,4,5,6,7]
>>> map(str,a)
<map object at 0x000001C2096400B8>
>>> list(map(str,a))
['1', '2', '3', '4', '5', '6', '7']
>>> def test(x):
return x*10
>>> a=[1,2,3,4,5,6,7]
>>> map(test,a)
<map object at 0x000002161274C7F0>
>>> list(map(test,a))
[10, 20, 30, 40, 50, 60, 70]
如果参数传入多个iterable,并行的从这些参数中取元素(每个iterable中取一个对象),并调用function。如果一个iterable参数比另外的iterable参数要短,将以None扩展该参数元素。
>>> def sum(x,y,z):
return x+y+z
>>> L1=[2,5,8]
>>> L2=[3,6,9]
>>> L3=[1,4,7]
>>> L=map(sum,L1,L2,L3) #第一次取L1[0],L2[0],L3[0],第二次取L1[1],L2[1],L3[1],第三次取L1[2],L2[2],L3[2]
>>> list(L)
[6, 15, 24]