標籤:font tin str logs 匿名 運算式 表達 string add
1. filter(function,sequence)
將sequence中的每個元素,依次傳進function函數(可以自訂,返回的結果是True或者False)篩選,返回合格元素,重組成一個String,List,Tuple等(跟sequence一樣)
樣本
def func(x): return x%2==0 and x%3==0filter(func,(3,6,8,12,15,21))#(6, 12)
2. map(functiom,sequence)
將sequence中的每個元素,依次傳進function函數(可以自訂,返回的結果是數值)計算,無論sequence是什麼類型,都返回List
樣本
def func(x): return x*2map(func,(3,6,8,12,15,21))#[6, 12, 16, 24, 30, 42]
map支援多個sequence輸入,但是function也要有相同數量的參數
def func(x,y): return x+yseq1=[3,6,4,8]seq2=[6,4,3,7]map(func,seq1,seq2)#[9, 10, 7, 15]
3. reduce(function, sequence, starting_value)
將sequence中的item順序迭代調用function,例如可以用來對List求和:
def add(x,y): return x+yreduce(add,[3,6,4,8])#21#相當於運行‘3+6+4+8’=21
如果有starting_value,還可以作為初始值調用
def subtract(x,y): return x-yreduce(subtract,[3,6,4],20)#7#相當於‘20-3-6-4‘=7
4. lambda匿名函數
文法:lambda 參數1,參數2(,參數n..):運算式 返回的是一個函數對象
樣本
func=lambda x,y:x+yfunc(3,5)#8
將lambda和reduce結合
reduce(lambda x,y:x+y,[3,6,4,8])#21
Python 內建的一些高效率函數用法