python中map是什么意义?
map函数的原型是map(function, iterable, …),它的返回效果是一个列表。
参数function传的是一个函数名,可所以python内置的,也可所以自定义的。
参数iterable传的是一个能够迭代的对象,比方列表,元组,字符串如许的。
这个函数的意义就是将function应用于iterable的每一个元素,效果以列表的情势返回。注意到没有,iterable背面另有省略号,意义就是能够传很多个iterable,假如有分外的iterable参数,并行的从这些参数中取元素,并挪用function。假如一个iterable参数比别的的iterable参数要短,将以None扩大该参数元素。照样看例子来邃晓吧!
a=(1,2,3,4,5) b=[1,2,3,4,5] c="zhangkang" la=map(str,a) lb=map(str,b) lc=map(str,c) print(la) print(lb) print(lc)
输出:
['1', '2', '3', '4', '5'] ['1', '2', '3', '4', '5'] ['z', 'h', 'a', 'n', 'g', 'k', 'a', 'n', 'g']
str()是python的内置函数,这个例子是把列表/元组/字符串的每一个元素变成了str范例,然后以列表的情势返回。固然我们也能够传入自定义的函数,看下面的例子。
def mul(x): return x*x n=[1,2,3,4,5] res=map(mul,n)
输出:[1, 4, 9, 16, 25]
把列表n中的每一个元素运转一次mul函数后获得的效果作为终究效果列表的元素。再看下有多个iterable参数的状况。
def add(x,y,z): return x+y+z list1=[1,2,3] list2=[1,2,3] list3=[1,2,3] res=map(add,list1,list2,list3) print(res)
输出:[3, 6, 9]
并行的从三个列表中各自掏出元素然后运转add函数,有人可能会问,假如三个列表长度不一样怎么办,前面已说了,关于短的谁人iterable参数会用None弥补。关于上面的例子,假如list3=[1,2]的话,那末这个顺序会报错,由于虽然在运转add函数的时刻列表list3的末了一个元素会用None弥补,然则None和int范例的数是不能相加的。也就是说,除非参数function支撑None的运算,不然基础没意义。如今我们看下另一个例子你就邃晓了
def add(x,y,z): return x,y,z list1 = [1,2,3] list2 = [1,2,3,4] list3 = [1,2,3,4,5] res = map(add, list1, list2, list3) print(res)
输出:
[(1, 1, 1), (2, 2, 2), (3, 3, 3), (None, 4, 4), (None, None, 5)]
相干引荐:《Python教程》
以上就是python中map是什么意义的细致内容,更多请关注ki4网别的相干文章!