最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python匿名函數(shù)lambda的使用及說明

 更新時間:2026年05月07日 15:06:44   作者:一只勤勞的耗子  
Python3.8.4中l(wèi)ambda的特點是匿名函數(shù)的定義方式,簡潔方便,lambda函數(shù)支持傳參、默認(rèn)值、可變參數(shù)等,可以與條件語句一起使用,應(yīng)用場景包括處理列表(如過濾元素、排序等)和處理字典(如排序、保留鍵值對等)

當(dāng)前版本:

  • Python 3.8.4

1.lambda 的特點

lambda 是一種匿名函數(shù)的定義方式,也稱為 lambda 函數(shù)。它不需要為函數(shù)命名,這使得在需要臨時或一次性的函數(shù)功能時非常方便,通常只需要一行代碼即可完成函數(shù)的定義。

為什么說它簡潔呢,來看一組對比:

【傳統(tǒng)函數(shù)】

def add_def(a, b):
    return a + b

print(add_def(2, 3))

【lambda函數(shù)】

add_lambda = lambda a, b: a + b
print(add_lambda(2, 3))

使用傳統(tǒng)函數(shù)使用2行代碼,使用 lambda 函數(shù)僅需要1行代碼,從代碼量來講確實簡潔,如果代碼量大,使用傳統(tǒng)函數(shù)更容易閱讀。所以一般只有在邏輯簡單的情況使用 lambda 函數(shù)最合適。

2.lambda 的用法

2.1. 基本語法

lambda 由2部分組成(關(guān)鍵字:表達(dá)式)

lambda : 表達(dá)式
  • 表達(dá)式:表示函數(shù)的邏輯操作,可以是任意有效的 Python 表達(dá)式。

用一個最簡單的表達(dá)式來舉例:

lambda: "Hello, World!"

結(jié)果(匿名函數(shù)):

正常情況下,我們是通過 lambda 來定義一個匿名函數(shù),比如:

func = lambda : 1+1

通過 lambda 來定義一個匿名函數(shù)(func),我們可以直接調(diào)用這個函數(shù),也支持向函數(shù)傳參。

2.2. 函數(shù)傳參

匿名函數(shù)本身就是函數(shù)的一種,所以它也支持傳參,語法如下:

lambda 參數(shù) : 表達(dá)式

定義1個參數(shù)的例子

func = lambda x: x**2

我們定義一個名為func的匿名函數(shù),調(diào)用時與正常情況下傳參即可

func(3)    # 傳入一個參數(shù)

定義多個參數(shù)也是同樣的方法

func = lambda x,y,z: x+y+z

調(diào)用函數(shù)時傳入多個參數(shù)

func(3,4,5)

當(dāng)然了,參數(shù)同樣支持默認(rèn)值

func = lambda x=10,y=20,z=30: x+y+z

調(diào)用時可以使用默認(rèn)值或自定義的值,與傳統(tǒng)函數(shù)沒有區(qū)別

func()        # 使用默認(rèn)值
func(x=20)    # 使用部分默認(rèn)值
func(1,2,3)   # 不使用默認(rèn)值

也支持可變參數(shù)(語法:*參數(shù)名)

func = lambda *args: sum(args)

調(diào)用參數(shù)時沒有數(shù)量限制

func(10)              # 傳入1個參數(shù)
func(10, 20, 30, 40)  # 傳入多個參數(shù)

2.3. 結(jié)合條件語句

lambda 支持與條件語句一起使用,語法如下:

lambda 參數(shù) : 條件語句

比如簡單的三目運(yùn)算:

func = lambda x: True if x > 0 else False

通過傳入的參數(shù)判斷是否大于0,如果大于0返回True,否則返回False

func(2)    # 傳入一個大于0的參數(shù)

多條件可以使用多個 if

func = lambda x: "大于0" if x > 0 else "小于0" if x < 0 else "等于0"
  • 如果 x 大于 0,則滿足條件 x > 0;如果 x 不大于 0,但小于 0,則滿足條件 x < 0;如果 x 不滿足前面兩個條件,即等于 0,則執(zhí)行最后的 else 分支。

  • 如果語句再復(fù)雜一點就不適用匿名函數(shù)了,不太好閱讀。

如果參數(shù)是字符串,返回字符串的長度,否則返回-1

func = lambda x: len(x) if isinstance(x, str) else -1
  • 同樣通過 if 判斷這個參數(shù),成功返回 len(x),失敗返回 -1

更加復(fù)雜一點的判斷

func = lambda x: True if (x > 0) and (x % 2 == 0) else False
  • 如果參數(shù) x 大于0,并且是偶數(shù),返回 True,否則返回 False

3. lambda 的應(yīng)用場景

3.1. 處理列表

處理列表的元素還需要借助 filter 函數(shù),用于過濾序列(列表、元組等)。它的語法如下:

filter(函數(shù), 序列)

利用一個函數(shù)來對序列進(jìn)行判斷,該函數(shù)返回True保留元素,返回False則不保留元素。

【案例一】過濾元素的偶數(shù)

numbers = [1, 2, 3, 4, 5]

even_numbers = list(filter(lambda x: x % 2 == 0, numbers))
  • 元素取余為0則保留元素,反之不保留

也可以直接定義1~10的偶數(shù)列表

even_numbers = list(filter(lambda x: x % 2 == 0, range(1, 11)))

【案例二】過濾元素的奇數(shù)

numbers = [1, 2, 3, 4, 5]

odd_numbers = list(filter(lambda x: x % 2 != 0, numbers))
  • 元素取余不等于0則保留元素,反之不保留

【案例三】過濾字符串長度大于3的元素

names = ["AAA", "BBBB", "CCCCC", "DDD"]

long_names = list(filter(lambda name: len(name) > 3, names))
  • 元素長度大于3則保留元素,反之不保留

【案例四】過濾出空元素

L = ["AAA", "BB", "", "DDD", ""]

non_empty = list(filter(lambda l: l != "", L))
  • 元素不為空則保留元素,反之不保留

3.2. 處理字典

【案例一】將值排序

age = {"小李": 18, "小王": 27, "小張": 23}

# 升序
sorted_age = dict(sorted(age.items(), key=(lambda item: item[1]) ))

# 降序
sorted_age = dict(sorted(age.items(), key=(lambda item: item[1]), reverse=True))
  • 利用 lambda 表達(dá)式作為排序的關(guān)鍵字,根據(jù)字典中的值對鍵值對進(jìn)行排序,并使用 reverse=True/False 參數(shù)進(jìn)行降/升序排序。

復(fù)雜一點的字典也是使用同樣的方式處理

students = [
    {"姓名": "小李", "年齡": 18, "成績": "A"},
    {"姓名": "小王", "年齡": 20, "成績": "B"},
    {"姓名": "小張", "年齡": 19, "成績": "A"},
    {"姓名": "小徐", "年齡": 21, "成績": "C"}
]

sorted_students = sorted(students, key=lambda x: x["年齡"])  # 通過年齡排序

【案例二】保留值大于20的鍵值對

age = {"小李": 18, "小王": 27, "小張": 23}

passed_age = dict(filter(lambda item: item[1] >= 20, age.items()))
  • age.items() 表示取鍵值對,lambda將這個鍵值對傳入匿名函數(shù),再通過這個參數(shù)取索引為1(就是值)的值來判斷是否大于等于20。如果為True保留鍵值對,為False則不保留。

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python實現(xiàn)保證只能運(yùn)行一個腳本實例

    Python實現(xiàn)保證只能運(yùn)行一個腳本實例

    這篇文章主要介紹了Python實現(xiàn)保證只能運(yùn)行一個腳本實例,本文直接給出實現(xiàn)代碼,需要的朋友可以參考下
    2015-06-06
  • Python tkinter三種布局實例詳解

    Python tkinter三種布局實例詳解

    這篇文章主要介紹了Python tkinter三種布局實例詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-01-01
  • python無限生成不重復(fù)(字母,數(shù)字,字符)組合的方法

    python無限生成不重復(fù)(字母,數(shù)字,字符)組合的方法

    今天小編就為大家分享一篇python無限生成不重復(fù)(字母,數(shù)字,字符)組合的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • python如何將aac轉(zhuǎn)為mp3,保持原有目錄結(jié)構(gòu)

    python如何將aac轉(zhuǎn)為mp3,保持原有目錄結(jié)構(gòu)

    使用Python腳本實現(xiàn)AAC格式轉(zhuǎn)MP3格式的方法介紹,需要用戶輸入AAC文件所在目錄路徑和MP3輸出目錄路徑,通過調(diào)用FFmpeg工具實現(xiàn)格式轉(zhuǎn)換,該腳本簡單易懂,適合需要批量處理音頻文件的用戶,使用前需確保已安裝FFmpeg環(huán)境
    2024-11-11
  • pycharm環(huán)境下python、JS的包管理配置完整過程

    pycharm環(huán)境下python、JS的包管理配置完整過程

    PyCharm提供了多種管理項目包和環(huán)境的功能,可以幫助開發(fā)者更方便地管理項目的依賴和環(huán)境,這篇文章主要介紹了pycharm環(huán)境下python、JS包管理配置的相關(guān)資料,需要的朋友可以參考下
    2025-11-11
  • Python變量、數(shù)據(jù)類型、數(shù)據(jù)類型轉(zhuǎn)換相關(guān)函數(shù)用法實例詳解

    Python變量、數(shù)據(jù)類型、數(shù)據(jù)類型轉(zhuǎn)換相關(guān)函數(shù)用法實例詳解

    這篇文章主要介紹了Python變量、數(shù)據(jù)類型、數(shù)據(jù)類型轉(zhuǎn)換相關(guān)函數(shù)用法,結(jié)合實例形式詳細(xì)分析了Python變量類型、基本用法、變量類型轉(zhuǎn)換相關(guān)函數(shù)與使用技巧,需要的朋友可以參考下
    2020-01-01
  • 基于python的ini配置文件操作工具類

    基于python的ini配置文件操作工具類

    這篇文章主要為大家詳細(xì)介紹了基于python的ini配置文件操作工具類,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-04-04
  • python3使用mutagen進(jìn)行音頻元數(shù)據(jù)處理的方法

    python3使用mutagen進(jìn)行音頻元數(shù)據(jù)處理的方法

    mutagen是一個處理音頻元數(shù)據(jù)的python模塊,支持多種音頻格式,是一個純粹的python庫,僅依賴python標(biāo)準(zhǔn)庫,可在Python?3.7及以上版本運(yùn)行,支持Linux、Windows?和?macOS系統(tǒng),這篇文章主要介紹了python3使用mutagen進(jìn)行音頻元數(shù)據(jù)處理,需要的朋友可以參考下
    2022-10-10
  • Python實現(xiàn)文件及文件夾操作大全

    Python實現(xiàn)文件及文件夾操作大全

    在日常工作或生活中,總避免不了需要操作文件或文件夾,本文主要介紹了Python實現(xiàn)文件及文件夾操作大全,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-05-05
  • Python分支語句常見的使用方法

    Python分支語句常見的使用方法

    這篇文章主要介紹了Python分支語句常見的使用方法,Python分支語句,也稱為選擇語句,體現(xiàn)了程序的選擇結(jié)構(gòu),即對應(yīng)不同的場景,選擇不同的處理方式,具體常見的用法需要的朋友可參考下面文章內(nèi)容
    2022-06-06

最新評論

泸西县| 祁连县| 榆中县| 咸阳市| 慈溪市| 镇江市| 宣城市| 金华市| 四会市| 峡江县| 于都县| 德州市| 乡宁县| 上杭县| 古交市| 平山县| 渝北区| 姜堰市| 丘北县| 唐河县| 连山| 理塘县| 济宁市| 洪泽县| 花莲市| 开封市| 扎鲁特旗| 舒城县| 房山区| 广水市| 辛集市| 政和县| 福鼎市| 泾阳县| 榆社县| 周宁县| 望谟县| 西盟| 全椒县| 岳普湖县| 陈巴尔虎旗|