在python中,如果想要建立函式需要使用關鍵字def,而如果想要建立匿名函式,就需要使用lambda。
lambda建立的函式和def建立的函式有什麼區別?
def建立的函式是有名稱的,而lambda沒有
lambda會建立乙個函式的物件,但是卻不會把物件給乙個識別符號,而def 會把函式物件賦值給乙個變數
def 是一條語句,而lambda它只是乙個表示式
y = lambda x:print(x)
y(10) # 10
例如上面,通過lambda建立了乙個表示式,x相當於形參,**整體來看非常的簡單高效。
通常情況下,lambda 可以直接作為列表或者字典的成員,如下:
# 建立乙個列表,將通過表示式lambda建立的表示式當做列表中的元素
list_test = [lambda a:a*3,lambda b:b*4]
# 給列表中設定值
x = list_test[0](3)
y = list_test[1](2)
print(x,y) # 9 8
那麼相同的操作,在列表中,只能夠使用lambda,沒有辦法使用def替代,因為def是語句,在列表中只能夠是表示式。而lambda表示式在「:」之後只能有乙個表示式,通常情況下,return語句能夠返回的可以放在lambda後面,不能夠返回的同樣也不能夠放在其後。因此,最好不要將if或者for這樣的語句放在lambda表示式的後面,lambda最好只用來定義一些簡單的函式。 python lambda表示式簡單學習
lambda表示式可以看作是函式的縮寫,比如 使用普通函式 deffunc x return x 1 print func 1 由此可以得出結果為2 使用lambda表示式 add lambda x x 1 print add 1 結果也為2 由此可知使用lambda表示式有時可以使 更加的簡潔。在...
python lambda表示式的簡單使用
1 基本格式 lambda 引數 執行 塊 下邊就是計算兩個數之和 sum lambda x,y x y 呼叫函式 result sum 3,4 print result 注意 lambda函式能接收任何數量的引數但只能返回乙個表示式的值 匿名函式不能直接呼叫print,因為lambda需要乙個表示...
SpringDataRedis簡單入門介紹
在實際開發中,開發的每乙個專案,每天都有大量的人訪問,對資料庫造成很大的訪問壓力,甚至是癱瘓。那如何解決呢?我們通常的做法有兩種 一種是資料快取 一種是網頁靜態化。我們今天討論第一種解決方案。springdataredis是spring大家族中的乙個成員,提供了在srping應用中通過簡單的配置訪問...