python 的几个内置函数(lambda ,zip, filter, map, reduce )用法
?1.lambda lambda其實(shí)就是一條語句,lambda(x):body。x是lambda函數(shù)的參數(shù),參數(shù)可以有任意多個(gè)(包括可選參數(shù));body是函數(shù)體,只能是一個(gè)表達(dá)式,并且直接返回該表達(dá)式的值。
>>>f=lambda x:x+1
>>>f(2)
3
>>>(lambda x,y:x+y)(2,3)
5
?
???? 2.filter filter(func, list)接受兩個(gè)參數(shù):一個(gè)函數(shù)func和一個(gè)列表list,返回一個(gè)列表。函數(shù)func只能有一個(gè)參數(shù)。filter的功能:列表中所有元素作為參數(shù)傳遞給函數(shù),返回可以另func返回真的元素的列表
>>>l=['abc','acd','1245','ddad','aaa']
>>>func(s)
... return s.startswith('a')
>>>filter(func, l)
['abc','acd','aaa']
?filter為過濾list,并返回list,綁定的函數(shù)為一個(gè)返回bool值的函數(shù)?
?filter(lambda item:item>2,[1,2,3,4])
?>>>[3,4]
?? def fun(x):
???????????? return x>2 and x<6
????? list=[1,2,3,4,5,6,7]
????? filter(fun,list)
?? >>> [3,4,5]
?
??? 3.zip? zip函數(shù)接受任意多個(gè)序列作為參數(shù),將所有序列按相同的索引組合成一個(gè)元素是各個(gè)序列合并成的tuple的新序列,新的序列的長度以參數(shù)中最短的序列為準(zhǔn)。另外(*)操作符與zip函數(shù)配合可以實(shí)現(xiàn)與zip相反的功能,即將合并的序列拆成多個(gè)tuple
>>>x=[1,2,3],y=['a','b','c']
>>>zip(x,y)
[(1,'a'),(2,'b'),(3,'c')]
>>>zip(*zip(x,y))
[(1,2,3),('a','b','c')]
????????????
??????
???? 4.map為操作list,返回list,綁定的函數(shù)為修改list中每一個(gè)值的函數(shù)
???? >>> list=[1,2,3]
???? >>> map(lambda x : x*2,list)
???? >>> [2, 4, 6]
??
???? 5.reduce為逐次操作list里的每項(xiàng),接收的參數(shù)為 2個(gè),最后返回的為一個(gè)結(jié)果
???? >>>? def myadd(x,y):???
???? >>>?????????????? return x+y
???? >>>?? sum=reduce(myadd,(1,2,3))??
???? >>> 6
總結(jié)
以上是生活随笔為你收集整理的python 的几个内置函数(lambda ,zip, filter, map, reduce )用法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 解决spark-shell输出日志信息过
- 下一篇: pyspark.zip/pyspark/