什麼是lambda表示式
我們通常在寫**的時候會寫很多很多的函式,這些函式往往要用到def…return等多行**,但實際有用的**很少很少,那麼lambda表示式就是這樣一種簡寫函式的常用的措施。
乙個例子
定義乙個函式
def f(x,y):
return x+y
print(f(2,3))
列印出來的結果是5;
這個函式是乙個求和的函式,使用lambda表示式可以是這樣:
f = lambda x,y:x+y
print(f(2,3))
列印出來的結果也是5;
可以看出二者的區別,lambda表示式沒有def和return,lambda的輸入就是「:」前的引數,輸出就是「:」後的表示式
排序中的lambda表示式
定義乙個用於排序的函式
data = [['勒布朗-詹姆斯',『洛杉磯湖人』,34],
['揚尼斯-阿德托昆博','密爾沃基雄鹿隊',24],
['麥可-喬丹','芝加哥公牛隊',56]]
def solution(people):
return people[2]
data.sort(key = solution)
print(data)
列印出來的結果是:
[['揚尼斯-阿德托昆博', '密爾沃基雄鹿隊', 24], ['勒布朗-詹姆斯', '洛杉磯湖人', 34], ['麥可-喬丹', '芝加哥公牛隊', 56]]
這個排序就是將data陣列按照元素的第三個值進行從大到的排序;
而使用lambda表示式就是這樣:
data = [['勒布朗-詹姆斯',『洛杉磯湖人』,34],
['揚尼斯-阿德托昆博','密爾沃基雄鹿隊',24],
['麥可-喬丹','芝加哥公牛隊',56]]
data.sort(key = lambda people:people[2])
print(data)
上面的**列印出來的結果同樣也是:
[['揚尼斯-阿德托昆博', '密爾沃基雄鹿隊', 24], ['勒布朗-詹姆斯', '洛杉磯湖人', 34], ['麥可-喬丹', '芝加哥公牛隊', 56]]
混合函式中的lambda表示式
定義乙個用於求二元二次方程的函式:
def f(a,b,c):
return lambda x:a*x*x+b*x+c
print(f(1,2,3)(3))
該程式列印出來的結果是:18
可以看出當引數過多的時候可以在函式體內定義lambda表示式,傳入lambda表示式的引數與傳入函式的引數是分開的,這樣有利於區分引數。
python基礎教程之匿名函式lambda
python lambda 當我們在使用函式時,有時候,並不需要顯示的定義乙個函式,我們可以使用匿名函式更加方便,程式設計客棧在python中對匿名函式也提供了支援。比如當我們想計算兩個數a,b之和時,即f a,b a b。我們可以有兩種方法完成,第一種就是顯示的定義乙個函式f x,y 然後將引數傳...
內建函式filter 和匿名函式lambda解析
一.內建函式filter filter 函式是 python 內建的乙個高階函式,filter 函式接收乙個函式 f 和乙個list,這個函式 f 的作用是對每個元素進行判斷,返回由符合條件迭代器 python3以下版本返回是列表 語法 filter function or none,iterabl...
Python基礎刻意練習 函式與lambda表示式
本系列定位為複習筆記,某些內容並未提及。在此記錄一些典型疑問和我在學習中的問題或經常遺忘的細節,也會新增一些覺得有意思的部分 其實就是隨心所欲 內容主要使用 進行傳達 def printme str print str printme 1 printme 2 temp printme hello p...