Python 內建的一些高效率函數用法

來源:互聯網
上載者:User

標籤: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 內建的一些高效率函數用法

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.