python匿名函式Lambda表示式及其用法

2021-09-27 07:06:00 字數 1524 閱讀 6950

什麼是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表示式沒有defreturn,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...