您好,登錄后才能下訂單哦!
Python中有哪些常見的內置高效率函數?針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
1. filter(function,sequence)
將sequence中的每個元素,依次傳進function函數(可以自定義,返回的結果是True或者False)篩選,返回符合條件的元素,重組成一個String,List,Tuple等(跟sequence一樣)
示例
def func(x): return x%2==0 and x%3==0 filter(func,(3,6,8,12,15,21)) #(6, 12)
2. map(functiom,sequence)
將sequence中的每個元素,依次傳進function函數(可以自定義,返回的結果是數值)計算,無論sequence是什么類型,都返回List
示例
def func(x): return x*2 map(func,(3,6,8,12,15,21)) #[6, 12, 16, 24, 30, 42]
map支持多個sequence輸入,但是function也要有相同數量的參數
def func(x,y): return x+y seq1=[3,6,4,8] seq2=[6,4,3,7] map(func,seq1,seq2) #[9, 10, 7, 15]
注意:以上示例是在python2.7中的,python3要用如下用法
>>> map_obj = map(lambda x:x+1,[1,2,3,4]) >>> map_obj <map object at 0x0000014C511BD898> >>> list(map_obj) [2, 3, 4, 5]
3. reduce(function, sequence, starting_value)
將sequence中的item順序迭代調用function,例如可以用來對List求和:
def add(x,y): return x+y reduce(add,[3,6,4,8]) #21 #相當于運行‘3+6+4+8'=21
如果有starting_value,還可以作為初始值調用
def subtract(x,y): return x-y reduce(subtract,[3,6,4],20) #7 #相當于'20-3-6-4'=7
4. lambda匿名函數
語法:lambda 參數1,參數2(,參數n..):表達式
返回的是一個函數對象
示例
func=lambda x,y:x+y func(3,5) #8
將lambda和reduce結合
reduce(lambda x,y:x+y,[3,6,4,8]) #21
關于Python中有哪些常見的內置高效率函數問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。