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表示式的接收引數列表,右邊包含表示式或語句塊,表示將表示式的值或語句塊返回的值傳給左邊的引數...