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是甚么意义的具体内容,更多请存眷资源魔其它相干文章!
标签: Python python教程 python编程 python使用问题 map
抱歉,评论功能暂时关闭!