Python基礎學習篇 lambda

2021-06-27 19:55:06 字數 860 閱讀 1773

python lambda是在python中使用lambda來建立匿名函式,而用def建立的方法是有名稱的,除了從表面上的方法名不一樣外,python lambda還有哪些和def不一樣呢?

1 python lambda會建立乙個函式物件,但不會把這個函式物件賦給乙個識別符號,而def則會把函式物件賦值給乙個變數。

2 python lambda它只是乙個表示式,而def則是乙個語句。

下面是python lambda的格式,看起來好精簡阿。

lambda x: print x

如果你在python 列表解析裡用到python lambda,我感覺意義不是很大,因為python lambda它會建立乙個函式物件,但馬上又給丟棄了,因為你沒有使用它的返回值,即那個函式物件。也正是由於lambda只是乙個表示式,它可以直接作為python 列表或python 字典的成員,比如:

info = [lambda a: a**3, lambda b: b**3]

在這個地方沒有辦法用def語句直接代替。因為def是語句,不是表示式不能巢狀在裡面,lambda表示式在「:」後只能有乙個表示式。也就是說,在def中,用return可以返回的也可以放在lambda後面,不能用return返回的也不能定義在python lambda後面。因此,像if或for或print這種語句就不能用於lambda中,lambda一般只用來定義簡單的函式。

下面舉幾個python lambda的例子吧

1 單個引數的:

g = lambda x:x*2

print g(3)

結果是6

2 多個引數的:

m = lambda x,y,z: (x-y)*z

print m(3,1,2)

結果是4

Python學習基礎篇

1.python學習,通過linux指令 py 檔案建立第一行輸入特殊注釋 usr bin env python 然後通過指令給 py以執行許可權chmod a x hello.py 通過 py執行 2.python輸入和輸出類似其他語言 輸出 print hello world 輸入 name i...

Python 基本資料型別基礎實戰 Lambda

reference reference python程式設計基礎 第2版 lambda效率不及operator 冒號前是輸入引數,冒號後是返回值 add lambda x,y x y print add 2,5 g lambda x,y 2,z 6 x y z print g 10 wrong ex...

Python基礎學習篇 exec

exec語句 exec語句用來執行儲存在字串或者檔案中的python語句。可以生成乙個包含python 的字串,然後使用exec語句執行這些語句。exec print hello word hello world exec語句的用法和eval r execfile 是不一樣的,exec是乙個語句,而...