Python學習100天-Day18(lambda表示式)

Day18-lambda表示式

Python學習100天-Day18(lambda表示式)

最近學習了一個新的Python特有的屬性,Python允許使用lambda關鍵字來建立匿名函式。

先看一個例子,建立一個普通的函式:

Python學習100天-Day18(lambda表示式)

Python的lambda表示式基本語法是在冒號(:)左邊放原函式的引數,可以有多個引數,用逗號(,)隔開即可;冒號右邊是返回值。

如果是多個引數的情況:

Python學習100天-Day18(lambda表示式)

三個特性:

lambda函式有如下特性:

lambda函式是匿名的:所謂匿名函式,通俗地說就是沒有名字的函式。lambda函式沒有名字。

lambda函式有輸入和輸出:輸入是傳入到引數列表argument_list的值,輸出是根據表示式expression計算得到的值。

lambda函式一般功能簡單:單行expression決定了lambda函式不可能完成複雜的邏輯,只能完成非常簡單的功能。由於其實現的功能一目瞭然,甚至不需要專門的名字來說明。

擴充套件用法

在實際中,根據這個lambda函式應用場景的不同,可以將lambda函式的用法擴充套件:

將lambda函式作為引數傳遞給其他函式

先看一個例子,定義一個根據成績評級的方法:

Python學習100天-Day18(lambda表示式)

用到了迴圈結構,根據每一行的分數進行if判斷,用lambda改寫一下:

Python學習100天-Day18(lambda表示式)

簡單講一下這個改寫的邏輯,首先是定義一個根據分析判斷級別的方法,然後定義df的level列。lambda再定義一個匿名函式透過apply 傳到df的每一行進行運算。這樣子就可以根據apply的方法,省掉了迴圈結構。