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

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

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

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

工程師鄧生 ? 來(lái)源:Python愛(ài)好者集中營(yíng) ? 作者:欣一 ? 2022-09-13 18:09 ? 次閱讀

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

什么是lambda函數(shù)

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

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

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

什么時(shí)候不適合使用lambda方法

什么是Lambda函數(shù)

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

lambdaarguments:expression

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

(lambdax:x**2)(5)

output

25

過(guò)濾列表中的元素

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

filter(function,iterable)

function -- 判斷函數(shù)

iterable -- 可迭代對(duì)象,列表或者是字典

其中我們有這么一個(gè)列表

importnumpyasnp

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

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

lambdax:x**2<100

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

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

output

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

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

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

lambdax:x**2+x**3

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

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

output

poYBAGMgVzCAHT9FAAAVBIL3cpM153.jpg

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


poYBAGMgV0SAIn2pAAAcfRNDtrs070.jpg

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

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

output

poYBAGMgV1mARc25AAAUeWgv-fg213.jpg


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

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

myseries=pd.Series(mylist)

myseries

output

pYYBAGMgV3aAVeTrAAAcH4HSSmk454.jpg

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

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

output

poYBAGMgV4mAJri4AAApp0nNHD8015.jpg

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

poYBAGMgV5yAKbIAAAA0bsGJ8PQ676.jpg

output

pYYBAGMgV66ACJGPAAAmoR2Pwh8035.jpg

并且通過(guò)apply()方法處理可是比直接用str.upper()方法來(lái)處理,速度來(lái)的更快哦!!

不太適合使用的場(chǎng)景

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


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

squared_sum(3,4)

相比較而言更好的是自定義一個(gè)函數(shù)來(lái)進(jìn)行處理

poYBAGMgV82ALXHcAAAavlQ5BZw109.jpg

output

25

而我們遇到如下情景的時(shí)候,可以對(duì)代碼稍作簡(jiǎn)化處理

pYYBAGMgV9-ATi_mAAAlDHFBlT0912.jpg

output

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

我們可以將其簡(jiǎn)化成


poYBAGMgV_CASmWRAAApnJtOuwk580.jpg

output

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

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



審核編輯:劉清

聲明:本文內(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)投訴
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4797

    瀏覽量

    84727

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

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

收藏 人收藏

    評(píng)論

    相關(guān)推薦

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

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

    Python常用函數(shù)大全

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

    【每天學(xué)點(diǎn)AI】個(gè)例子帶你了解Python裝飾器到底在干嘛!

    進(jìn)行“加料”呢?Python裝飾器提供了個(gè)更為優(yōu)雅的方式來(lái)增強(qiáng)現(xiàn)有函數(shù)的行為,并且不需要修改現(xiàn)有的函數(shù)代碼及調(diào)用方式。接下來(lái)通過(guò)
    的頭像 發(fā)表于 09-20 16:54 ?560次閱讀
    【每天學(xué)點(diǎn)AI】<b class='flag-5'>一</b><b class='flag-5'>個(gè)</b>例子帶你了解<b class='flag-5'>Python</b>裝飾器到底在干嘛!

    超級(jí)電容VS電池,哪個(gè)更好用?

    電容;超級(jí)電容;電池;儲(chǔ)能;能量密度; 摘要:超級(jí)電容和電池同為儲(chǔ)能裝置,各有優(yōu)勢(shì)。超級(jí)電容充放電快、循環(huán)次數(shù)多,但能量密度低;電池充電慢、循環(huán)次數(shù)少,但能量密度高??筛鶕?jù)使用場(chǎng)景和需求選擇合適的儲(chǔ)能裝置。
    的頭像 發(fā)表于 07-29 11:47 ?466次閱讀

    ESP8266使用Lambda賦值創(chuàng)建崩潰的原因?

    ); Serial.printf(\"啟動(dòng) realloc lambda 測(cè)試...n\"); l=(reqHandler *) malloc(2*sizeof(reqHandler
    發(fā)表于 07-18 06:47

    python函數(shù)的萬(wàn)能參數(shù)

    我們通過(guò)個(gè)簡(jiǎn)單的事例來(lái)展示函數(shù)的萬(wàn)能參數(shù),我們先寫(xiě)個(gè)最簡(jiǎn)單的
    的頭像 發(fā)表于 07-17 14:56 ?345次閱讀
    <b class='flag-5'>python</b><b class='flag-5'>函數(shù)</b>的萬(wàn)能參數(shù)

    opencv-python和opencv樣嗎

    樣。OpenCV(Open Source Computer Vision Library)是個(gè)開(kāi)源的計(jì)算機(jī)視覺(jué)和機(jī)器學(xué)習(xí)軟件庫(kù),它提供了大量的圖像和視頻處理功能。OpenCV-Pytho
    的頭像 發(fā)表于 07-16 10:38 ?1216次閱讀

    內(nèi)置超級(jí)電容模塊的故障指示器有哪些特性?

    內(nèi)置超級(jí)電容模塊的故障指示器有哪些特性?安裝在輸配電線路、電力電纜及開(kāi)關(guān)柜進(jìn)出線上的故障指示器在電流流通的線路中起著非常重要的作用,旦線路發(fā)生故障,巡線人員可以利用指示燈的報(bào)警顯示快速的確定故障
    的頭像 發(fā)表于 06-04 09:39 ?465次閱讀
    <b class='flag-5'>內(nèi)置</b><b class='flag-5'>超級(jí)</b>電容模塊的故障指示器有哪些特性?

    100G Lambda MSA協(xié)議資源免費(fèi)下載

    100G Lambda MSA
    的頭像 發(fā)表于 05-31 16:31 ?423次閱讀

    如何使用Python生成四位隨機(jī)數(shù)字

    為了實(shí)現(xiàn)這些目標(biāo),Python 為我們提供了random() 模塊。random() 是個(gè)內(nèi)置Python 模塊,用于生成隨機(jī)數(shù)。
    的頭像 發(fā)表于 04-15 12:47 ?680次閱讀

    函數(shù)發(fā)生器的作用,概念要點(diǎn)是什么

    概念。 理解迭代器和可迭代對(duì)象: 在深入探討函數(shù)生成器之前,我們需要先了解迭代器和可迭代對(duì)象的概念。在Python中,迭代是種訪問(wèn)集合元素的方式,無(wú)論集合的大小如何。迭代器是
    的頭像 發(fā)表于 02-23 16:01 ?546次閱讀

    output函數(shù)怎么用

    output 函數(shù)個(gè)通用的術(shù)語(yǔ),并不特指某個(gè)具體的編程語(yǔ)言或軟件工具。 如果你在使用 Python 編程語(yǔ)言,那么可能是指 print 函數(shù)
    的頭像 發(fā)表于 02-23 14:21 ?1269次閱讀

    TDK-Lambda電源如何使用?

    TDK-Lambda電源如何使用?
    的頭像 發(fā)表于 02-18 14:29 ?823次閱讀
    TDK-<b class='flag-5'>Lambda</b>電源如何使用?

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

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

    函數(shù)指針和指針函數(shù)是不是個(gè)東西?

    函數(shù)指針的本質(zhì)是指針,就跟整型指針、字符指針樣,函數(shù)指針指向的是個(gè)函數(shù)
    的頭像 發(fā)表于 01-03 16:35 ?536次閱讀
    <b class='flag-5'>函數(shù)</b>指針和指針<b class='flag-5'>函數(shù)</b>是不是<b class='flag-5'>一</b><b class='flag-5'>個(gè)</b>東西?