python 內建函數之lambda-filter-reduce-apply-map

來源:互聯網
上載者:User

標籤:apply   mapped   filter   語言   post   大致   markdown   返回   code   

  • (1)lambda

lambda是Python中一個很有用的文法,它允許你快速定義單行最小函數。類似於C語言中的宏,可以用在任何需要函數的地方。

基本文法如下:

函數名 = lambda args1,args2,...,argsn : expression

例如:
add = lambda x,y : x + y
print(add(1,2))

  • (2)filter

filter函數相當於一個過濾器,函數原型為:filter(function,sequence),表示對sequence序列中的每一個元素依次執行function,這裡function是一個bool函數,舉例說明:

sequence = [1,2,3,4,5,6,7,8,9,10]fun = lambda x : x % 2 == 0seq = filter(fun,sequence)print(seq)

以下代碼就是表示篩選出sequence中的所有偶數。

filter函數原型大致如下:

def filter(fun,seq):    filter_seq = []    for item in seq:        if fun(item):            filter_seq.append(item)    return(filter_seq) 
  • (3)map

map的基本形式為:map(function,sequence),是將function這個函數作用於sequence序列,然後返回一個最終結果序列。比如:

seq = [1,2,3,4,5,6]fun = lambda x : x << 2print map(fun,seq)

map的函數原始碼大致如下:

def map(fun,seq):    mapped_seq = []    for item in seq:        mapped_seq.append(fun(item))    return(mapped_seq)
  • (4)reduce

reduce函數的形式為:

reduce(function,sequence,initVal)

function表示一個二元函數,sequence表示要處理的序列,而initVal表示處理的初始值。比如:

seq = [1,2,3,4,5,6,7,8,9,10]fun = lambda x,y: x + yprint(reduce(fun,seq,0))

表示從初始值0開始對序列seq中的每一個元素累加,所以得到結果是55

reduce函數的原始碼大致如下:

def reduce(fun,seq,initVal = None):    Lseq = list(seq)    if initVal is None:        res = Lseq.pop(0)    else:        res = initVal    for item in Lseq:        res = fun(seq,item)    return res
  • (5)apply

apply是用來間接地代替某個函數,比如:

def say(a,b):    print(a,b)apply(say,(234,‘Hello World!‘))

python 內建函數之lambda-filter-reduce-apply-map

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.