09lambda表示式及重要BIF

2021-08-15 13:51:50 字數 1929 閱讀 3992

lambda表示式

建立匿名函式

優點:1.省去定義函式的過程

2.不用起名

3.可讀性強

表示式中可以呼叫其他函式,並支援預設值引數和關鍵引數,該表示式的計算結果就是函式的返回值。例一

>>> def ds(x):

return 2 * x +1

>>> ds(5) 11

>>> lambda x : 2 * x + 1

at 0x000002ad72ffc1e0>

>>> g = lambda x:2 * x + 1

>>> g(5) 11

例二 >>> g = lambda x,y : x + y

>>> g(3,8) 11

重要bif 1

filter()     過濾器

help   filter(function or none, iterable) --> filter object

【iterable可迭代的   object物件

迭代,顧名思意就是不停地代換的意思。在程式設計裡,經常用到這樣的方法,同乙個變數,用不同的數值來代替,從而使得表示式變得精簡】

filter有兩個引數,第乙個引數可以是函式也可以是none物件,第二個引數是乙個可迭代資料。若第乙個引數是函式,則將可迭代資料裡的每乙個元素作為函式的引數進行計算,把返回為true的值篩選出來,並成乙個列表;若第乙個引數為none,則將為true的值篩選出來。例一

篩選奇數

>>> list(filter(lambda x : x % 2,range(10)))

[1, 3, 5, 7, 9]

>>> list(filter(lambda x : x % 2,[1,3.5,5,2,0,1]))

[1, 3.5, 5, 1]

重要bif 2

map()   對映

map(func, *iterables) --> map object

將可迭代序列進行函式運算,並將結果返還

>>> list(map(lambda x : x * 2,range(2,14)))

[4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26]

重要bif 3

reduce() 對引數迭代器中的元素進行累計

使用reduce函式需要先從functools模組匯入

functools.reduce(function,iterable[,initializer])

initializer表示固定的初始值

reduce函式回依次從迭代器物件中取出每個元素,和上一次呼叫function的結果作為引數再次呼叫function函式

#在python3中,reduce函式被放置在functools模組中,使用時需要先引入。

例1  求和

>>> from functools import reduce

>>> func = lambda x,y:x+y

>>> result = reduce(func,[1,2,3,4,5])

>>> print(result) 15

>>> from functools import reduce

>>> func = lambda x,y:x+y

>>> result = reduce(func,[1,2,3,4],6)

>>> print(result) 16

#此外,iterable引數還可以傳入字串型別

>>> from functools import reduce

>>> func = lambda x,y:x+y

>>> result = reduce(func,['aa','bb','cc'],'dd')

>>> print(result)

ddaabbcc

>>> result

'ddaabbcc'

lambda表示式 lambda表示式

1.概述 c 11 中的 lambda 表示式用於定義並建立匿名的函式物件,以簡化程式設計工作。lambda 的語法形式如下 函式物件引數 操作符過載函式引數 mutable 或 exception 宣告 返回值型別可以看到,lambda 主要分為五個部分 函式物件引數 操作符過載函式引數 muta...

Lambda表示式和Lambda表示式樹

原版來自 linq學習筆記之二 lambda表示式和lambda表示式樹 lambda 表示式 lambda expressions 是linq實現的另一特性。lambda表示式的作用就是使用使用函式式語法,將方法實現關聯到委託例項。在使用查詢表示式 query expressions 時,查詢表示...

Lambda表示式表示式樹

在c 3.0中,繼匿名方法之後出現了lambda 表示式,使表達更為簡潔 快捷。lambda 表示式使用lambda 運算子 來定義,語法如下 引數列表 lambda 運算子的左邊是輸入引數,定義lambda表示式的接收引數列表,右邊包含表示式或語句塊,表示將表示式的值或語句塊返回的值傳給左邊的引數...