欧美亚洲综合图区在线|天天射天天干国产成卜|99久久免费国产精精品|国产的欧美一区二区三区|日韩中文字幕无码不卡专区|亚麻成人aV极品一区二区|国产成人AV区一区二区三|成人免费一区二区三区视频网站

當(dāng)前位置:首頁 > 網(wǎng)站建設(shè) > 正文內(nèi)容

html列表頁面源碼(列表 html)

網(wǎng)站建設(shè)2周前 (12-08)119

今天我們來學(xué)習(xí) Python 中的 lambda 函數(shù),并探討使用它的優(yōu)點(diǎn)和局限性

Let's do it!

什么是 Python 中的 Lambda 函數(shù)

lambda 函數(shù)是一個(gè)匿名函數(shù)(即,沒有名稱定義),它可以接受任意數(shù)量的參數(shù),但與普通函數(shù)不同,它只計(jì)算并返回一個(gè)表達(dá)式

Python 中的 lambda 函數(shù)使用以下語法表達(dá):

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

lambda 函數(shù)包括三個(gè)元素:

關(guān)鍵字 lambda:與普通函數(shù)中 def 類似

參數(shù):支持傳遞位置和關(guān)鍵字參數(shù),與普通函數(shù)一樣

正文:處理定參數(shù)的表達(dá)式

關(guān)鍵字 lambda:與普通函數(shù)中 def 類似

參數(shù):支持傳遞位置和關(guān)鍵字參數(shù),與普通函數(shù)一樣

正文:處理定參數(shù)的表達(dá)式

需要注意的是,普通函數(shù)不同,這里不需要用括號(hào)將 lambda 函數(shù)的參數(shù)括起來,如果 lambda 函數(shù)有兩個(gè)或更多參數(shù),我們用逗號(hào)列出它們

我們使用 lambda 函數(shù)只計(jì)算一個(gè)短表達(dá)式(理想情況下,單行)并且只計(jì)算一次,這意味著我們以后不會(huì)再復(fù)用這個(gè)函數(shù)。通常來說我們會(huì)將 lambda 函數(shù)作為參數(shù)傳遞給高階函數(shù)(接受其他函數(shù)作為參數(shù)的函數(shù)),例如 Python 內(nèi)置函數(shù),如 filter、map 或 reduce等

Python 中的 Lambda 函數(shù)如何工作

讓我們看一個(gè)簡單的 lambda 函數(shù)示例:

lambdax: x + 1

Output:

function __main__.lambda(x)

上面的 lambda 函數(shù)接受一個(gè)參數(shù),將其遞增 1,然后返回結(jié)果

它是以下帶有 def 和 return 關(guān)鍵字的普通函數(shù)的更簡單版本:

defincrement_by_one(x):

展開全文

returnx + 1

到目前我們的 lambda 函數(shù) lambda x: x + 1 只創(chuàng)建一個(gè)函數(shù)對(duì)象,不返回任何內(nèi)容,這是因?yàn)槲覀儧]有為其參數(shù) x 提供任何值(參數(shù))。讓我們先分配一個(gè)變量,將它傳遞給 lambda 函數(shù),看看這次我們得到了什么:

a = 2

print( lambdax: a + 1)

Output:

function lambda at 0x00000250CB0A5820

我們的 lambda 函數(shù)沒有像我們預(yù)期的那樣返回 3,而是返回了函數(shù)對(duì)象本身及其內(nèi)存位置,可以看出這不是調(diào)用 lambda 函數(shù)的正確方法。要將參數(shù)傳遞給 lambda 函數(shù),執(zhí)行它并返回結(jié)果,我們應(yīng)該使用以下語法:

( lambdax: x + 1)( 2)

Output:

3

雖然我們的 lambda 函數(shù)的參數(shù)沒有用括號(hào)括起來,但當(dāng)我們調(diào)用它時(shí),我們會(huì)在 lambda 函數(shù)的整個(gè)構(gòu)造以及我們傳遞給它的參數(shù)周圍添加括號(hào)

上面代碼中要注意的另一件事是,使用 lambda 函數(shù),我們可以在創(chuàng)建函數(shù)后立即執(zhí)行該函數(shù)并接收結(jié)果。這就是所謂的立即調(diào)用函數(shù)執(zhí)行(或 IIFE)

我們可以創(chuàng)建一個(gè)帶有多個(gè)參數(shù)的 lambda 函數(shù),在這種情況下,我們用逗號(hào)分隔函數(shù)定義中的參數(shù)。當(dāng)我們執(zhí)行這樣一個(gè) lambda 函數(shù)時(shí),我們以相同的順序列出相應(yīng)的參數(shù),并用逗號(hào)分隔它們:

( lambdax, y, z: x + y + z)( 3, 8, 1)

Output:

12

也可以使用 lambda 函數(shù)來執(zhí)行條件操作。下面是一個(gè)簡單 if-else 函數(shù)的 lambda 模擬:

print(( lambdax: x if(x 10) else10)( 5))

print(( lambdax: x if(x 10) else10)( 12))

Output:

10

12

如果存在多個(gè)條件(if-elif-...-else),我們必須嵌套它們:

( lambdax: x * 10ifx 10else(x * 5ifx 5elsex))( 11)

Output:

110

但是上面的寫法,又令代碼變得難以閱讀

在這種情況下,具有 if-elif-...-else 條件集的普通函數(shù)將是比 lambda 函數(shù)更好的選擇。實(shí)際上,我們可以通過以下方式編寫上面示例中的 lambda 函數(shù):

defcheck_conditions(x):

ifx 10:

returnx * 10

elifx 5:

returnx * 5

else:

returnx

check_conditions( 11)

Output:

110

盡管上面的函數(shù)比相應(yīng)的 lambda 函數(shù)增加了更多行,但它更容易閱讀

我們可以將 lambda 函數(shù)分配給一個(gè)變量,然后將該變量作為普通函數(shù)調(diào)用:

increment = lambdax: x + 1

increment( 2)

Output:

3

但是根據(jù) Python 代碼的 PEP 8 樣式規(guī)則,這是一種不好的做法

賦值語句的使用消除了 lambda 表達(dá)式相對(duì)于顯式 def 語句所能提供的唯一好處(即,它可以嵌入到更大的表達(dá)式中)

賦值語句的使用消除了 lambda 表達(dá)式相對(duì)于顯式 def 語句所能提供的唯一好處(即,它可以嵌入到更大的表達(dá)式中)

因此如果我們確實(shí)需要存儲(chǔ)一個(gè)函數(shù)以供進(jìn)一步使用,我們最好定義一個(gè)等效的普通函數(shù),而不是將 lambda 函數(shù)分配給變量

Lambda 函數(shù)在 Python 中的應(yīng)用帶有 filter 函數(shù)的 Lambda

Python 中的 filter 函數(shù)需要兩個(gè)參數(shù):

定義過濾條件的函數(shù)

函數(shù)在其上運(yùn)行的可迭代對(duì)象

定義過濾條件的函數(shù)

函數(shù)在其上運(yùn)行的可迭代對(duì)象

運(yùn)行該函數(shù),我們得到一個(gè)過濾器對(duì)象:

lst = [ 33, 3, 22, 2, 11, 1]

filter( lambdax: x 10, lst)

Output:

filter at 0x250cb090520

為了從過濾器對(duì)象中獲取一個(gè)新的迭代器,并且原始迭代器中的所有項(xiàng)都滿足預(yù)定義的條件,我們需要將過濾器對(duì)象傳遞給 Python 標(biāo)準(zhǔn)庫的相應(yīng)函數(shù):list、tuple、set 、frozenset 或 sorted(返回排序列表)

讓我們過濾一個(gè)數(shù)字列表,只選擇大于 10 的數(shù)字并返回一個(gè)按升序排序的列表:

lst = [ 33, 3, 22, 2, 11, 1]

sorted(filter( lambdax: x 10, lst))

Output:

[11, 22, 33]

我們不必創(chuàng)建與原始對(duì)象相同類型的新可迭代對(duì)象,此外我們可以將此操作的結(jié)果存儲(chǔ)在一個(gè)變量中:

lst = [ 33, 3, 22, 2, 11, 1]

tpl = tuple(filter( lambdax: x 10, lst))

tpl

Output:

(33, 22, 11)

帶有 map 函數(shù)的 Lambda

我們使用 Python 中的 map 函數(shù)對(duì)可迭代的每個(gè)項(xiàng)目執(zhí)行特定操作。它的語法與 filter 相同:一個(gè)要執(zhí)行的函數(shù)和一個(gè)該函數(shù)適用的可迭代對(duì)象。

map 函數(shù)返回一個(gè) map 對(duì)象,我們可以通過將該對(duì)象傳遞給相應(yīng)的 Python 函數(shù)來從中獲取一個(gè)新的迭代:list、tuple、set、frozenset 或 sorted

與 filter 函數(shù)一樣,我們可以從 map 對(duì)象中提取與原始類型不同類型的可迭代對(duì)象,并將其分配給變量。

下面是使用 map 函數(shù)將列表中的每個(gè)項(xiàng)目乘以 10 并將映射值作為分配給變量 tpl 的元組輸出的示例:

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

print(map( lambdax: x * 10, lst))

tpl = tuple(map( lambdax: x * 10, lst))

tpl

Output:

map object at 0x00000250CB0D5F40

(10, 20, 30, 40, 50)

map 和 filter 函數(shù)之間的一個(gè)重要區(qū)別是第一個(gè)函數(shù)總是返回與原始函數(shù)相同長度的迭代。因此由于 pandas Series 對(duì)象也是可迭代的,我們可以在 DataFrame 列上應(yīng)用 map 函數(shù)來創(chuàng)建一個(gè)新列:

importpandas aspd

df = pd.DataFrame({ 'col1': [ 1, 2, 3, 4, 5], 'col2': [ 0, 0, 0, 0, 0]})

print(df)

df[ 'col3'] = df[ 'col1'].map( lambdax: x * 10)

df

Output:

col1 col2

0 1 0

1 2 0

2 3 0

3 4 0

4 5 0

col1 col2 col3

0 1 0 10

1 2 0 20

2 3 0 30

3 4 0 40

4 5 0 50

當(dāng)然要在上述情況下獲得相同的結(jié)果,也可以使用 apply 函數(shù):

df[ 'col3'] = df[ 'col1'].apply( lambdax: x * 10)

df

Output:

col1 col2 col3

0 1 0 10

1 2 0 20

2 3 0 30

3 4 0 40

4 5 0 50

我們還可以根據(jù)某些條件為另一列創(chuàng)建一個(gè)新的 DataFrame 列,對(duì)于下面的代碼,我們可以互換使用 map 或 apply 函數(shù):

df[ 'col4'] = df[ 'col3'].map( lambdax: 30ifx 30elsex)

df

Output:

col1 col2 col3 col4

0 1 0 10 30

1 2 0 20 30

2 3 0 30 30

3 4 0 40 40

4 5 0 50 50

帶有 reduce 函數(shù)的 Lambda

reduce 函數(shù)與 functools Python 模塊相關(guān),它的工作方式如下:

對(duì)可迭代對(duì)象的前兩項(xiàng)進(jìn)行操作并保存結(jié)果

對(duì)保存的結(jié)果和可迭代的下一項(xiàng)進(jìn)行操作

以這種方式在值對(duì)上進(jìn)行,直到所有項(xiàng)目使用可迭代的

對(duì)可迭代對(duì)象的前兩項(xiàng)進(jìn)行操作并保存結(jié)果

對(duì)保存的結(jié)果和可迭代的下一項(xiàng)進(jìn)行操作

以這種方式在值對(duì)上進(jìn)行,直到所有項(xiàng)目使用可迭代的

該函數(shù)與前兩個(gè)函數(shù)具有相同的兩個(gè)參數(shù):一個(gè)函數(shù)和一個(gè)可迭代對(duì)象。但是與前面的函數(shù)不同的是,這個(gè)函數(shù)不需要傳遞給任何其他函數(shù),直接返回結(jié)果標(biāo)量值:

fromfunctools importreduce

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

reduce( lambdax, y: x + y, lst)

Output:

15

上面的代碼展示了我們使用 reduce 函數(shù)計(jì)算列表總和時(shí)的作用

需要注意的是,reduce 函數(shù)總是需要一個(gè)帶有兩個(gè)參數(shù)的 lambda 函數(shù),而且我們必須首先從 functools Python 模塊中導(dǎo)入它

Python 中 Lambda 函數(shù)的優(yōu)缺點(diǎn)優(yōu)點(diǎn)

它是評(píng)估單個(gè)表達(dá)式的理想選擇,應(yīng)該只評(píng)估一次

它可以在定義后立即調(diào)用

與相應(yīng)的普通語法相比,它的語法更緊湊

它可以作為參數(shù)傳遞給高階函數(shù),例如 filter、map 和 reduce

它是評(píng)估單個(gè)表達(dá)式的理想選擇,應(yīng)該只評(píng)估一次

它可以在定義后立即調(diào)用

與相應(yīng)的普通語法相比,它的語法更緊湊

它可以作為參數(shù)傳遞給高階函數(shù),例如 filter、map 和 reduce

它不能執(zhí)行多個(gè)表達(dá)式

它很容易變得麻煩,可讀性差,例如當(dāng)它包括一個(gè) if-elif-...-else 循環(huán)

它不能包含任何變量賦值(例如,lambda x: x=0 將拋出一個(gè)語法錯(cuò)誤)

我們不能為 lambda 函數(shù)提供文檔字符串

它不能執(zhí)行多個(gè)表達(dá)式

它很容易變得麻煩,可讀性差,例如當(dāng)它包括一個(gè) if-elif-...-else 循環(huán)

它不能包含任何變量賦值(例如,lambda x: x=0 將拋出一個(gè)語法錯(cuò)誤)

我們不能為 lambda 函數(shù)提供文檔字符串

總而言之,我們已經(jīng)詳細(xì)討論了在 Python 中定義和使用 lambda 函數(shù)的許多方面:

lambda 函數(shù)與普通 Python 函數(shù)有何不同

Python 中 lambda 函數(shù)的語法和剖析

何時(shí)使用 lambda 函數(shù)

lambda 函數(shù)的工作原理

如何調(diào)用 lambda 函數(shù)

調(diào)用函數(shù)執(zhí)行(IIFE)的定義

如何使用 lambda 函數(shù)執(zhí)行條件操作,如何嵌套多個(gè)條件,以及為什么我們應(yīng)該避免它

為什么我們應(yīng)該避免將 lambda 函數(shù)分配給變量

如何將 lambda 函數(shù)與 filter 函數(shù)一起使用

如何將 lambda 函數(shù)與 map 函數(shù)一起使用

我們?nèi)绾卧?pandas DataFrame 中使用

帶有傳遞給它的 lambda 函數(shù)的 map 函數(shù) - 以及在這種情況下使用的替代功能

如何將 lambda 函數(shù)與 reduce 函數(shù)一起使用

在普通 Python 上使用 lambda 函數(shù)的優(yōu)缺點(diǎn)

lambda 函數(shù)與普通 Python 函數(shù)有何不同

Python 中 lambda 函數(shù)的語法和剖析

何時(shí)使用 lambda 函數(shù)

lambda 函數(shù)的工作原理

如何調(diào)用 lambda 函數(shù)

調(diào)用函數(shù)執(zhí)行(IIFE)的定義

如何使用 lambda 函數(shù)執(zhí)行條件操作,如何嵌套多個(gè)條件,以及為什么我們應(yīng)該避免它

為什么我們應(yīng)該避免將 lambda 函數(shù)分配給變量

如何將 lambda 函數(shù)與 filter 函數(shù)一起使用

如何將 lambda 函數(shù)與 map 函數(shù)一起使用

我們?nèi)绾卧?pandas DataFrame 中使用

帶有傳遞給它的 lambda 函數(shù)的 map 函數(shù) - 以及在這種情況下使用的替代功能

如何將 lambda 函數(shù)與 reduce 函數(shù)一起使用

在普通 Python 上使用 lambda 函數(shù)的優(yōu)缺點(diǎn)

html列表頁面源碼(列表 html)

希望今天的討論可以使 Python 中看似令人生畏的 lambda 函數(shù)概念更清晰、更易于應(yīng)用,更希望小伙伴們能夠喜歡,喜歡就點(diǎn)個(gè) 贊吧!

入門: 最全的零基礎(chǔ)學(xué)Python的問題 | 零基礎(chǔ)學(xué)了8個(gè)月的Python |實(shí)戰(zhàn)項(xiàng)目 | 學(xué)Python就是這條捷徑

干貨:爬取豆瓣短評(píng),電影《后來的我們》 | 38年NBA最佳球員分析 |從萬眾期待到口碑撲街!唐探3令人失望 | 笑看新倚天屠龍記 | 燈謎答題王 | 用Python做個(gè)海量小姐姐素描圖 | 碟中諜這么火,我用機(jī)器學(xué)習(xí)做個(gè)迷你推薦系統(tǒng)電影

趣味:彈球游戲 | 九宮格 | 漂亮的花 | 兩百行Python《天天酷跑》游戲!

AI:會(huì)做詩的機(jī)器人 | 給圖片上色 | 預(yù)測收入 | 碟中諜這么火,我用機(jī)器學(xué)習(xí)做個(gè)迷你推薦系統(tǒng)電影

小工具: Pdf轉(zhuǎn)Word,輕松搞定表格和水??! | 一鍵把html網(wǎng)頁保存為pdf! |再見PDF提取收費(fèi)! | 用90行代碼打造最強(qiáng)PDF轉(zhuǎn)換器,word、PPT、excel、markdown、html一鍵轉(zhuǎn)換 | 制作一款釘釘?shù)蛢r(jià)機(jī)票提示器! |60行代碼做了一個(gè)語音壁紙切換器天天看小姐姐! |

年度爆款文案

1). 臥槽!Pdf轉(zhuǎn)Word用Python輕松搞定 !

2).學(xué)Python真香!我用100行代碼做了個(gè)網(wǎng)站,幫人PS旅行圖片,賺個(gè)雞腿吃

3).首播過億,火爆全網(wǎng),我分析了《乘風(fēng)破浪的姐姐》,發(fā)現(xiàn)了這些秘密

4). 80行代碼!用Python做一個(gè)哆來A夢分身

5).你必須掌握的20個(gè)python代碼,短小精悍,用處無窮

6). 30個(gè)Python奇淫技巧集

7). 我總結(jié)的80頁《菜鳥學(xué)Python精選干貨.pdf》,都是干貨

8). 再見Python!我要學(xué)Go了!2500字深度分析 !

9).發(fā)現(xiàn)一個(gè)舔狗福利!這個(gè)Python爬蟲神器太爽了,自動(dòng)下載妹子圖片

掃描二維碼推送至手機(jī)訪問。

版權(quán)聲明:本文由飛速云SEO網(wǎng)絡(luò)優(yōu)化推廣發(fā)布,如需轉(zhuǎn)載請(qǐng)注明出處。

本文鏈接:http://landcheck.net/post/125037.html

標(biāo)簽: html列表頁面源碼

“html列表頁面源碼(列表 html)” 的相關(guān)文章

服裝設(shè)計(jì)PPT模板免費(fèi)下載(服裝設(shè)計(jì)ppt模板圖片)

服裝設(shè)計(jì)PPT模板免費(fèi)下載(服裝設(shè)計(jì)ppt模板圖片)

本篇文章給大家談?wù)劮b設(shè)計(jì)PPT模板免費(fèi)下載,以及服裝設(shè)計(jì)ppt模板圖片對(duì)應(yīng)的知識(shí)點(diǎn),希望對(duì)各位有所幫助,不要忘了收藏本站喔。 本文目錄一覽: 1、網(wǎng)上服裝購物系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) 答辯ppt怎么寫 2、鞋子、服裝設(shè)計(jì)都需要什么軟件? 3、有沒有一個(gè)可以學(xué)習(xí)服裝設(shè)計(jì)APP軟件? 網(wǎng)上服裝購物系...

網(wǎng)頁制作處理軟件中的三劍客是指(網(wǎng)頁設(shè)計(jì)的三劍客指的是什么)

網(wǎng)頁制作處理軟件中的三劍客是指(網(wǎng)頁設(shè)計(jì)的三劍客指的是什么)

今天給各位分享網(wǎng)頁制作處理軟件中的三劍客是指的知識(shí),其中也會(huì)對(duì)網(wǎng)頁設(shè)計(jì)的三劍客指的是什么進(jìn)行解釋,如果能碰巧解決你現(xiàn)在面臨的問題,別忘了關(guān)注本站,現(xiàn)在開始吧!本文目錄一覽: 1、什么是網(wǎng)頁三劍客?比較三劍客各自的特點(diǎn) 2、網(wǎng)頁三箭客是什么 3、網(wǎng)頁三劍客是哪三個(gè)網(wǎng)絡(luò)操作軟件,他們之間有沒什么...

教師招聘簡歷表格模板(教師招聘簡歷表格模板電子版)

教師招聘簡歷表格模板(教師招聘簡歷表格模板電子版)

本篇文章給大家談?wù)劷處熣衅负啔v表格模板,以及教師招聘簡歷表格模板電子版對(duì)應(yīng)的知識(shí)點(diǎn),希望對(duì)各位有所幫助,不要忘了收藏本站喔。 本文目錄一覽: 1、教師個(gè)人求職簡歷表格范本 2、急求幼兒教師個(gè)人簡歷模板表格 一份 3、化學(xué)教師個(gè)人簡歷模板參考 4、關(guān)于優(yōu)秀教師工作簡歷模板5篇 5、幼兒...

做公眾號(hào)內(nèi)容的網(wǎng)站(做微信公眾號(hào)的網(wǎng)站)

做公眾號(hào)內(nèi)容的網(wǎng)站(做微信公眾號(hào)的網(wǎng)站)

今天給各位分享做公眾號(hào)內(nèi)容的網(wǎng)站的知識(shí),其中也會(huì)對(duì)做微信公眾號(hào)的網(wǎng)站進(jìn)行解釋,如果能碰巧解決你現(xiàn)在面臨的問題,別忘了關(guān)注本站,現(xiàn)在開始吧!本文目錄一覽: 1、我目前負(fù)責(zé)微信公眾號(hào)文章撰寫,請(qǐng)問有哪些網(wǎng)站可以學(xué)習(xí)嗎? 2、有沒有什么網(wǎng)站或者公眾號(hào)可以寫文章、小故事賺錢? 3、微信公眾號(hào)原創(chuàng)文章...

插畫作品設(shè)計(jì)說明范文(插畫作品設(shè)計(jì)說明范文圖片)

插畫作品設(shè)計(jì)說明范文(插畫作品設(shè)計(jì)說明范文圖片)

本篇文章給大家談?wù)劜瀹嬜髌吩O(shè)計(jì)說明范文,以及插畫作品設(shè)計(jì)說明范文圖片對(duì)應(yīng)的知識(shí)點(diǎn),希望對(duì)各位有所幫助,不要忘了收藏本站喔。 本文目錄一覽: 1、插畫設(shè)計(jì)的概述 2、插畫構(gòu)思 3、設(shè)計(jì)說明書200字左右 4、我的論文是淺談插畫的設(shè)計(jì)手法?誰能幫我寫個(gè)摘要? 插畫設(shè)計(jì)的概述 以商品擬人化...

視頻模板免費(fèi)制作網(wǎng)站(視頻模板免費(fèi)制作網(wǎng)站有哪些)

視頻模板免費(fèi)制作網(wǎng)站(視頻模板免費(fèi)制作網(wǎng)站有哪些)

本篇文章給大家談?wù)勔曨l模板免費(fèi)制作網(wǎng)站,以及視頻模板免費(fèi)制作網(wǎng)站有哪些對(duì)應(yīng)的知識(shí)點(diǎn),希望對(duì)各位有所幫助,不要忘了收藏本站喔。 本文目錄一覽: 1、有什么好用簡單的視頻制作軟件,可以套模板的,就像做PPT一樣可以套用很多模板,iPad端的也可以。 2、年會(huì)小視頻怎么制作? 3、有沒有整套視頻類...

平塘县| 红桥区| 保康县| 丽江市| 习水县| 淳安县| 尚义县| 阳原县| 青龙| 务川| 特克斯县| 江安县| 大安市| 阿坝| 高唐县| 瑞安市| 云南省| 漾濞| 乳山市| 台湾省| 铜陵市| 如东县| 仁怀市| 汕头市| 亚东县| 云阳县| 嘉荫县| 普安县| 商城县| 乐东| 莱芜市| 江油市| 高尔夫| 富阳市| 土默特左旗| 于田县| 宝兴县| 赤峰市| 页游| 江北区| 法库县|