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

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

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

當前版本:

  • 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部分組成(關鍵字:表達式)

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

用一個最簡單的表達式來舉例:

lambda: "Hello, World!"

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

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

func = lambda : 1+1

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

2.2. 函數(shù)傳參

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

lambda 參數(shù) : 表達式

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

func = lambda x: x**2

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

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

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

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

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

func(3,4,5)

當然了,參數(shù)同樣支持默認值

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

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

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

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

func = lambda *args: sum(args)

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

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

2.3. 結合條件語句

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

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

比如簡單的三目運算:

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 分支。

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

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

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

更加復雜一點的判斷

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

3. lambda 的應用場景

3.1. 處理列表

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

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

利用一個函數(shù)來對序列進行判斷,該函數(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 表達式作為排序的關鍵字,根據(jù)字典中的值對鍵值對進行排序,并使用 reverse=True/False 參數(shù)進行降/升序排序。

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

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則不保留。

總結

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

相關文章

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

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

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

    Python tkinter三種布局實例詳解

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

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

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

    python如何將aac轉為mp3,保持原有目錄結構

    使用Python腳本實現(xiàn)AAC格式轉MP3格式的方法介紹,需要用戶輸入AAC文件所在目錄路徑和MP3輸出目錄路徑,通過調用FFmpeg工具實現(xià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包管理配置的相關資料,需要的朋友可以參考下
    2025-11-11
  • Python變量、數(shù)據(jù)類型、數(shù)據(jù)類型轉換相關函數(shù)用法實例詳解

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

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

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

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

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

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

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

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

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

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

最新評論

黑水县| 伊吾县| 常州市| 若羌县| 招远市| 图们市| 甘肃省| 全南县| 宁武县| 定陶县| 余庆县| 塘沽区| 巴林左旗| 乳山市| 敦煌市| 中超| 新竹市| 侯马市| 桃园市| 曲松县| 江川县| 宝兴县| 沙坪坝区| 富宁县| 临武县| 菏泽市| 吴江市| 银川市| 乌恰县| 新邵县| 铜陵市| 清苑县| 汉沽区| 英山县| 临颍县| 清水河县| 波密县| 商丘市| 合阳县| 十堰市| 横山县|