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

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

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

推薦一個Python超級好用的內(nèi)置函數(shù)lambda

工程師鄧生 ? 來源:Python愛好者集中營 ? 作者:欣一 ? 2022-09-13 18:09 ? 次閱讀

今天來給大家推薦一個Python當中超級好用的內(nèi)置函數(shù),那便是lambda方法,本篇教程大致和大家分享:

什么是lambda函數(shù)

lambda函數(shù)過濾列表元素

lambda函數(shù)和map()方法的聯(lián)用

lambda函數(shù)和apply()方法的聯(lián)用

什么時候不適合使用lambda方法

什么是Lambda函數(shù)

在Python當中,我們經(jīng)常使用lambda關(guān)鍵字來聲明一個匿名函數(shù),所謂地匿名函數(shù),通俗地來講就是沒有名字的函數(shù),具體的語法格式如下所示

lambdaarguments:expression

其中它可以接受任意數(shù)量的參數(shù),但是只允許包含一個表達式,而該表達式的運算結(jié)果就是函數(shù)的返回值,我們可以簡單地來寫一個例子

(lambdax:x**2)(5)

output

25

過濾列表中的元素

那么我們?nèi)绾蝸磉^濾列表當中的元素呢?這里就需要將lambda函數(shù)和filter()方法聯(lián)合起來使用了,而filter()方法的語法格式

filter(function,iterable)

function -- 判斷函數(shù)

iterable -- 可迭代對象,列表或者是字典

其中我們有這么一個列表

importnumpyasnp

yourlist=list(np.arange(2,50,3))

其中我們想要過濾出2次方之后小于100的元素,我們來定義一個匿名函數(shù),如下

lambdax:x**2<100

最后出來的結(jié)果如下所示

list(filter(lambdax:x**2<100,?yourlist))

output

[2,5,8]
要是遇上復雜的計算過程,小編這里還是推薦大家自己自定義一個函數(shù),但若是簡單的計算過程,lambda匿名函數(shù)絕對是最佳的選擇

和map()函數(shù)的聯(lián)用

map()函數(shù)的語法和上面的filter()函數(shù)相近,例如下面這個匿名函數(shù)

lambdax:x**2+x**3

我們將其和map()方法聯(lián)用起來

list(map(lambdax:x**2+x**3,yourlist))

output

poYBAGMgVzCAHT9FAAAVBIL3cpM153.jpg

當然正如我們之前提到的lambda匿名函數(shù)可以接受多個數(shù)量的參數(shù),我們這里就可以來嘗試一下了,例如有兩組列表


poYBAGMgV0SAIn2pAAAcfRNDtrs070.jpg

我們同樣使用map()方法來操作,代碼如下

list(map(lambdax,y:x**2+y**2,yourlist,mylist))

output

poYBAGMgV1mARc25AAAUeWgv-fg213.jpg


和apply()方法的聯(lián)用

apply()方法在Pandas的數(shù)據(jù)表格中用的比較多,而在apply()方法當中就帶上lambda匿名函數(shù),我們新建一個數(shù)據(jù)表格,如下所示

myseries=pd.Series(mylist)

myseries

output

pYYBAGMgV3aAVeTrAAAcH4HSSmk454.jpg

apply()方法的使用和前兩者稍有不同,map()方法和filter()方法我們都需要將可迭代對象放入其中,而這里的apply()則不需要

myseries.apply(lambdax:(x+5)/x**2)

output

poYBAGMgV4mAJri4AAApp0nNHD8015.jpg

而要是遇到DataFarme表格數(shù)據(jù)的時候,也是同樣地操作

poYBAGMgV5yAKbIAAAA0bsGJ8PQ676.jpg

output

pYYBAGMgV66ACJGPAAAmoR2Pwh8035.jpg

并且通過apply()方法處理可是比直接用str.upper()方法來處理,速度來的更快哦?。?/p>

不太適合使用的場景

那么不適合的場景有哪些呢?那么首先lambda函數(shù)作為一個匿名函數(shù),不適合將其賦值給一個變量,例如下面的這個案例


squared_sum=lambdax,y:x**2+y**2

squared_sum(3,4)

相比較而言更好的是自定義一個函數(shù)來進行處理

poYBAGMgV82ALXHcAAAavlQ5BZw109.jpg

output

25

而我們遇到如下情景的時候,可以對代碼稍作簡化處理

pYYBAGMgV9-ATi_mAAAlDHFBlT0912.jpg

output

[3.16227766,5.0,6.324555320,7.0,8.062257748,9.0]

我們可以將其簡化成


poYBAGMgV_CASmWRAAApnJtOuwk580.jpg

output

[3.162277,5.0,6.324555,7.0,8.062257,9.0]

如果是Python當中的內(nèi)置函數(shù),尤其是例如math這種用于算數(shù)的模塊,可以不需要放在lambda函數(shù)中,可以直接抽出來用



審核編輯:劉清

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

    關(guān)注

    55

    文章

    4767

    瀏覽量

    84376

原文標題:淺談Python當中Lambda函數(shù)的用法

文章出處:【微信號:AI科技大本營,微信公眾號:AI科技大本營】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    亞馬遜云科技推出Amazon Lambda SnapStart功能

    攜手,在其北京與寧夏區(qū)域成功部署了Amazon Lambda SnapStart功能。這創(chuàng)新技術(shù)顯著提升了基于Java的Lambda函數(shù)的啟動性能,最高可達10倍之多。
    的頭像 發(fā)表于 10-30 10:59 ?167次閱讀

    Python常用函數(shù)大全

    Python 世界里,有些寶藏函數(shù)和模塊,它們可以讓你編程更輕松、代碼更高效。這篇文章將帶你一一認識這些神器,讓你的開發(fā)生活瞬間輕松不少!
    的頭像 發(fā)表于 10-27 17:20 ?140次閱讀

    python中open函數(shù)的用法詳解

    python中open函數(shù)的用法詳解 Python中的open()函數(shù)用于打開文件。它接受文件名和模式作為參數(shù),并返回
    的頭像 發(fā)表于 01-30 15:31 ?1881次閱讀

    python中計算排列組合的函數(shù)有哪些

    Python中,有多種可以用于計算排列組合的函數(shù)和模塊。下面將詳細介紹些常用的函數(shù)和模塊,并提供詳實和細致的說明。 math模塊: Python
    的頭像 發(fā)表于 11-29 16:33 ?3416次閱讀

    不屬于python內(nèi)置函數(shù)

    Python種高級編程語言,它提供了許多內(nèi)置函數(shù),可以幫助開發(fā)人員更輕松地處理各種任務。但是,在Python中并非所有的
    的頭像 發(fā)表于 11-29 14:27 ?1342次閱讀

    python中各種函數(shù)的用法

    Python中有很多種不同類型的函數(shù),它們在解決各種問題和完成不同任務時起著重要的作用。下面我將詳細介紹幾種常用的函數(shù),包括內(nèi)置函數(shù)、自定義
    的頭像 發(fā)表于 11-23 15:48 ?695次閱讀

    python中input怎么輸入3

    Python 中,可以使用 input() 函數(shù)來獲取用戶的輸入。如果你想要輸入多個值,可以根據(jù)具體的需求使用以下方法。 方法:使用多個 input 函數(shù) 最簡單的方法是使用多個
    的頭像 發(fā)表于 11-23 15:31 ?9403次閱讀

    python如何導入模塊

    Python種強大的編程語言,它支持模塊化編程,使得開發(fā)者可以將代碼分解為可重用且獨立的模塊。模塊是包含函數(shù)、類和變量等定義的文件,
    的頭像 發(fā)表于 11-22 14:46 ?875次閱讀

    python調(diào)用math函數(shù)的方法

    Python編程中,數(shù)學函數(shù)是非常重要的工具,我們可以使用它們進行各種數(shù)值計算、幾何運算和統(tǒng)計分析等操作。Python的標準庫中內(nèi)置了很多數(shù)學函數(shù)
    的頭像 發(fā)表于 11-22 11:01 ?2676次閱讀

    python的format函數(shù)怎么用

    Python中的format()函數(shù)是用于格式化字符串的內(nèi)置函數(shù)。它允許我們將變量的值插入到字符串中,并對字符串進行格式化以滿足特定的需求。format()
    的頭像 發(fā)表于 11-22 09:44 ?2704次閱讀

    python函數(shù)返回多個參數(shù)

    函數(shù)是程序設計中的重要概念,在很多編程語言中都存在。函數(shù)可以接受輸入數(shù)據(jù),并且根據(jù)輸入數(shù)據(jù)進行系列操作,最后可以返回
    的頭像 發(fā)表于 11-21 16:37 ?1146次閱讀

    tuple函數(shù)怎么返回多個值

    在編程領(lǐng)域中,函數(shù)是非常重要的構(gòu)建模塊,它能夠接受輸入?yún)?shù)并執(zhí)行特定的計算,最終返回結(jié)果供程序使用。常規(guī)的函數(shù)只能返回值,但有時我們希望函數(shù)
    的頭像 發(fā)表于 11-21 16:33 ?657次閱讀

    python輸出list的每一個元素

    使用for循環(huán)來遍歷列表,并輸出其中的每一個元素。接下來,我將詳盡、詳實、細致地介紹Python輸出列表的每一個元素的方法,希望能對你有所幫助。 首先,我們需要明確
    的頭像 發(fā)表于 11-21 16:16 ?1431次閱讀

    sort函數(shù)python用法

    sort()函數(shù)Python中的內(nèi)置函數(shù),用于對可迭代對象進行排序??傻鷮ο蟀斜怼⒃M和字符串等。sort()
    的頭像 發(fā)表于 11-21 15:15 ?1188次閱讀

    python如何定義函數(shù)

    Python3 函數(shù) 函數(shù)是組織好的,可重復使用的,用來實現(xiàn)單,或相關(guān)聯(lián)功能的代碼段。 函數(shù)
    的頭像 發(fā)表于 11-14 11:26 ?671次閱讀