0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Python中的Lambda表達(dá)式

網(wǎng)絡(luò)技術(shù)干貨圈 ? 來(lái)源:網(wǎng)絡(luò)技術(shù)干貨圈 ? 2023-04-19 15:49 ? 次閱讀

Python 中,Lambda 表達(dá)式是一種非常強(qiáng)大的工具,它可以讓你快速創(chuàng)建小型匿名函數(shù),而不需要顯式地定義函數(shù)名稱。Lambda 表達(dá)式通常用于傳遞函數(shù)對(duì)象或簡(jiǎn)單的函數(shù)式編程。

一、語(yǔ)法

Lambda 表達(dá)式的基本語(yǔ)法如下:

lambdaarguments:expression

其中 arguments 是逗號(hào)分隔的參數(shù)列表,expression 是一個(gè)表達(dá)式,它將被執(zhí)行并返回結(jié)果。

以下是一個(gè)簡(jiǎn)單的例子,展示了 Lambda 表達(dá)式如何工作:

f=lambdax:x+1
print(f(1))#輸出2

在這個(gè)例子中,我們定義了一個(gè) Lambda 表達(dá)式,它將參數(shù) x 加 1,并將結(jié)果返回。我們將這個(gè) Lambda 表達(dá)式分配給變量 f,然后調(diào)用 f 并傳遞一個(gè)值 1。調(diào)用 f(1) 的結(jié)果為 2。

二、優(yōu)點(diǎn)

Lambda 表達(dá)式有很多優(yōu)點(diǎn),其中一些包括:

簡(jiǎn)潔性:Lambda 表達(dá)式通常比顯式函數(shù)更短和簡(jiǎn)潔,可以使代碼更易于閱讀和理解。

可讀性:當(dāng) Lambda 表達(dá)式只是簡(jiǎn)單的表達(dá)式時(shí),可以使代碼更具可讀性。例如,將一個(gè) Lambda 表達(dá)式傳遞給 Python 內(nèi)置函數(shù) map() 可以使代碼更易于理解和管理。

功能性:Lambda 表達(dá)式是 Python 函數(shù)式編程的基礎(chǔ),它提供了許多強(qiáng)大的編程功能,例如函數(shù)式編程和惰性求值。

三、應(yīng)用場(chǎng)景

Lambda 表達(dá)式在許多情況下都很有用,其中一些包括:

排序:在 Python 中,可以使用 sorted() 函數(shù)來(lái)對(duì)列表進(jìn)行排序。該函數(shù)接受一個(gè)可選的 key 參數(shù),用于指定排序的關(guān)鍵字??梢允褂?Lambda 表達(dá)式來(lái)指定關(guān)鍵字,如下所示:

numbers=[1,5,2,4,3]
sorted_numbers=sorted(numbers,key=lambdax:x)
print(sorted_numbers)#輸出[1,2,3,4,5]

在這個(gè)例子中,我們使用 sorted() 函數(shù)對(duì) numbers 列表進(jìn)行排序。我們使用一個(gè) Lambda 表達(dá)式 lambda x: x 作為關(guān)鍵字來(lái)進(jìn)行排序。這意味著我們按數(shù)字的大小進(jìn)行排序。

過(guò)濾:在 Python 中,可以使用 filter() 函數(shù)來(lái)過(guò)濾列表中的元素。該函數(shù)接受一個(gè)可調(diào)用對(duì)象和一個(gè)列表,然后返回一個(gè)新的列表,其中包含滿足可調(diào)用對(duì)象的元素。Lambda 表達(dá)式可以用作可調(diào)用對(duì)象,如下所示:

numbers=[1,2,3,4,5]
even_numbers=list(filter(lambdax:x%2==0,numbers))
print(even_numbers)#輸出[2,4]

在這個(gè)例子中,我們使用 filter() 函數(shù)來(lái)過(guò)濾 numbers 列表中的偶數(shù)。我們使用一個(gè) Lambda 表達(dá)式 lambda x: x % 2 == 0 作為可調(diào)用對(duì)象來(lái)判斷元素是否為偶數(shù)。

映射:在 Python 中,可以使用 map() 函數(shù)將一個(gè)函數(shù)應(yīng)用于一個(gè)列表中的每個(gè)元素??梢允褂?Lambda 表達(dá)式來(lái)指定要應(yīng)用的函數(shù),如下所示:

numbers=[1,2,3,4,5]
squares=list(map(lambdax:x**2,numbers))
print(squares)#輸出[1,4,9,16,25]

在這個(gè)例子中,我們使用 map() 函數(shù)將一個(gè) Lambda 表達(dá)式 lambda x: x**2 應(yīng)用于 numbers 列表中的每個(gè)元素。這個(gè) Lambda 表達(dá)式將每個(gè)元素平方,并將結(jié)果放入一個(gè)新列表 squares 中。

四、總結(jié)

Lambda 表達(dá)式是 Python 中一種非常有用的工具,它可以使代碼更短、更簡(jiǎn)潔和更易于閱讀。Lambda 表達(dá)式通常用于傳遞函數(shù)對(duì)象或簡(jiǎn)單的函數(shù)式編程,例如排序、過(guò)濾和映射。掌握 Lambda 表達(dá)式可以提高你的 Python 編程技能和效率。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 編程
    +關(guān)注

    關(guān)注

    88

    文章

    3616

    瀏覽量

    93739
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4331

    瀏覽量

    62629
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4797

    瀏覽量

    84694
  • Lambda
    +關(guān)注

    關(guān)注

    0

    文章

    29

    瀏覽量

    9879
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    C++的lambda表達(dá)式詳解

    lambda 表達(dá)式就是一個(gè)函數(shù)(匿名函數(shù)),也就是一個(gè)沒(méi)有函數(shù)名的函數(shù)。為什么不需要函數(shù)名呢,因?yàn)槲覀冎苯樱ㄒ淮涡缘模┯盟度胧接玫乃?,不需要其他地方調(diào)用它。
    發(fā)表于 10-27 10:13 ?1081次閱讀

    Java Lambda表達(dá)式的新特性

    Java Lambda表達(dá)式是Java 8最重要的新特性之一。 它們是一種可傳遞的匿名函數(shù),可以作為參數(shù)傳遞給方法或存儲(chǔ)在變量,因此可以在需要的時(shí)候調(diào)用它們。 基礎(chǔ) 1. 簡(jiǎn)介
    的頭像 發(fā)表于 09-30 10:29 ?2590次閱讀

    哪位大神詳細(xì)介紹委托、匿名方法、Lambda表達(dá)式

    委托、匿名方法、Lambda表達(dá)式總結(jié)
    發(fā)表于 11-11 07:50

    初識(shí) Python 正則表達(dá)式

    風(fēng)格的正則表達(dá)式模式。re 模塊使 Python 語(yǔ)言擁有全部的正則表達(dá)式功能。下面通過(guò)實(shí)例,一步一步來(lái)初步認(rèn)識(shí)正則表達(dá)式。比如在一段字符串
    發(fā)表于 03-17 16:44

    Python正則表達(dá)式教程之標(biāo)準(zhǔn)庫(kù)的完整介紹及使用示例說(shuō)明

    本文介紹了Python對(duì)于正則表達(dá)式的支持,包括正則表達(dá)式基礎(chǔ)以及Python正則表達(dá)式標(biāo)準(zhǔn)庫(kù)的完整介紹及使用示例。本文的內(nèi)容不包括如何編寫(xiě)
    發(fā)表于 01-23 16:00 ?3次下載
    <b class='flag-5'>Python</b>正則<b class='flag-5'>表達(dá)式</b>教程之標(biāo)準(zhǔn)庫(kù)的完整介紹及使用示例說(shuō)明

    Python正則表達(dá)式的學(xué)習(xí)指南

    本文介紹了Python對(duì)于正則表達(dá)式的支持,包括正則表達(dá)式基礎(chǔ)以及Python正則表達(dá)式標(biāo)準(zhǔn)庫(kù)的完整介紹及使用示例。本文的內(nèi)容不包括如何編寫(xiě)
    發(fā)表于 09-15 08:00 ?0次下載
    <b class='flag-5'>Python</b>正則<b class='flag-5'>表達(dá)式</b>的學(xué)習(xí)指南

    Python正則表達(dá)式指南

    本文介紹了Python對(duì)于正則表達(dá)式的支持,包括正則表達(dá)式基礎(chǔ)以及Python正則表達(dá)式標(biāo)準(zhǔn)庫(kù)的完整介紹及使用示例。本文的內(nèi)容不包括如何編寫(xiě)
    發(fā)表于 03-26 09:13 ?10次下載
    <b class='flag-5'>Python</b>正則<b class='flag-5'>表達(dá)式</b>指南

    初識(shí) Python 正則表達(dá)式

    風(fēng)格的正則表達(dá)式模式。re 模塊使 Python 語(yǔ)言擁有全部的正則表達(dá)式功能。 下面通過(guò)實(shí)例,一步一步來(lái)初步認(rèn)識(shí)正則表達(dá)式。 比如在一段字符串
    的頭像 發(fā)表于 03-17 16:44 ?1426次閱讀

    python正則表達(dá)式的常用函數(shù)

    編譯正則表達(dá)式模式,返回一個(gè)正則對(duì)象的模式。(可以把那些常用的正則表達(dá)式編譯成正則表達(dá)式對(duì)象,這樣可以提高一點(diǎn)效率。)
    的頭像 發(fā)表于 03-18 16:12 ?1801次閱讀

    Lambda表達(dá)式詳解

    C++11Lambda表達(dá)式用于 **定義并創(chuàng)建匿名的函數(shù)對(duì)象** ,以簡(jiǎn)化編程工作。下面看一下Lambda表達(dá)式的基本構(gòu)成。
    的頭像 發(fā)表于 02-09 11:28 ?1170次閱讀

    C語(yǔ)言的表達(dá)式

    在C語(yǔ)言中,表達(dá)式是由操作符和操作數(shù)組成。表達(dá)式可以由一個(gè)或者多個(gè)操作數(shù)組成,不同的操作符與操作數(shù)組成不同的表達(dá)式,因此,表達(dá)式才是C語(yǔ)言的基本。
    的頭像 發(fā)表于 02-21 15:09 ?1367次閱讀
    C語(yǔ)言的<b class='flag-5'>表達(dá)式</b>

    網(wǎng)絡(luò)工程師學(xué)Python-Lambda表達(dá)式

    Python ,Lambda 表達(dá)式是一種非常強(qiáng)大的工具,它可以讓你快速創(chuàng)建小型匿名函數(shù),而不需要顯式地定義函數(shù)名稱。Lambda
    的頭像 發(fā)表于 04-19 15:51 ?912次閱讀

    Python的正則表達(dá)式

    哈嘍大家好,我是了不起,今天給大家講Python的正則表達(dá)式Python,正則表達(dá)式是一
    的頭像 發(fā)表于 06-21 16:52 ?991次閱讀

    為什么引入Lambda?C++11 Lambda表達(dá)式介紹

    Lambda表達(dá)式是一個(gè)可以內(nèi)聯(lián)在我們代碼的函數(shù),我們可以將他傳遞給另外一個(gè)函數(shù)。
    的頭像 發(fā)表于 07-18 16:26 ?641次閱讀

    如何使用lambda表達(dá)式提升開(kāi)發(fā)效率?

    Java8 的一個(gè)大亮點(diǎn)是引入 Lambda 表達(dá)式,使用它設(shè)計(jì)的代碼會(huì)更加簡(jiǎn)潔。當(dāng)開(kāi)發(fā)者在編寫(xiě) Lambda 表達(dá)式時(shí),也會(huì)隨之被編譯成一個(gè)函數(shù)式接口。
    發(fā)表于 08-24 10:25 ?292次閱讀