詳解python中的lambda與sorted函數(shù)
lambda表達(dá)式
python中形如:
lambda parameters: expression
稱為lambda表達(dá)式,用于創(chuàng)建匿名函數(shù),該表達(dá)式會(huì)產(chǎn)生一個(gè)函數(shù)對(duì)象。
該對(duì)象的行為類似于用以下方式定義的函數(shù):
def <lambda>(parameters): return expression
python中的lambda函數(shù)可以接受任意數(shù)量的參數(shù),但只能有一個(gè)表達(dá)式。也就是說(shuō),lambda表達(dá)式適用于表示內(nèi)部?jī)H包含1行表達(dá)式的函數(shù)。那么lambda表達(dá)式的優(yōu)勢(shì)就很明顯了:
- 使用
lambda表達(dá)式可以省去單行函數(shù)的定義過(guò)程,使代碼更加簡(jiǎn)潔;- 適用于不需要多次復(fù)用的函數(shù)
例:
y = lambda x: x*x print(y(3)) > 9
fx = lambda x, y, z: x+y+z print(fx(3, 4, 5)) > 12
sorted()
python3.x中sorted函數(shù):
sorted(iterable, *, key=None, reverse=False)
sorted函數(shù)會(huì)根據(jù)iterable中的項(xiàng)返回一個(gè)新的已排序列表。
其中key與reverse是兩個(gè)可選參數(shù),它們都必須指定為關(guān)鍵字參數(shù);
key:指定帶有單個(gè)參數(shù)的函數(shù),用于從iterable的每個(gè)元素中提取用于比較的鍵,默認(rèn)為None,即直接比較元素;
reverse:為一個(gè)布爾值,用來(lái)指定排序規(guī)則,默認(rèn)為False(升序)。
python2的sorted函數(shù)中還有一個(gè)參數(shù)cmp,python3的sorted中已經(jīng)沒(méi)有這個(gè)參數(shù)了。
與list.sort()方法不同的是,sorted()是有返回值的,而list.sort()的返回值為None;并且list.sort()只能對(duì)list進(jìn)行排序,而sorted()可以接收任何的iterable
例:
# list
foo = [5, 7, 2, 9, 1]
bzz = sorted(foo)
print(bzz)
# > [1, 2, 5, 7, 9]
print(sorted(foo))
# > [1, 2, 5, 7, 9]
print(sorted(foo, reverse = True))
# > [9, 7, 5, 2, 1]
print(sorted(foo, key = lambda x: x*-1))
# > [9, 7, 5, 2, 1]
# dict
bar = {'java': 14, 'c': 16, 'python': 9, 'cpp': 6, 'csharp': 4}
print(sorted(bar))
# > ['c', 'cpp', 'csharp', 'java', 'python']
print(sorted(bar.items(), key = lambda kv: kv[1], reverse = True))
# > [('c', 16), ('java', 14), ('python', 9), ('cpp', 6), ('csharp', 4)]
以上就是詳解python中的lambda與sorted函數(shù)的詳細(xì)內(nèi)容,更多關(guān)于python lambda與sorted函數(shù)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
基于Python實(shí)現(xiàn)復(fù)刻人生重開(kāi)模擬器
人生重開(kāi)模擬器是由VickScarlet上傳至GitHub的一款簡(jiǎn)單的文字網(wǎng)頁(yè)游戲。本文將用Python復(fù)刻一下這個(gè)游戲,感興趣的小伙伴可以嘗試一下2022-10-10
Python tkinter實(shí)現(xiàn)圖片標(biāo)注功能(完整代碼)
tkinter是Python下面向tk的圖形界面接口庫(kù),可以方便地進(jìn)行圖形界面設(shè)計(jì)和交互操作編程,本文通過(guò)實(shí)例代碼給大家介紹的Python tkinter實(shí)現(xiàn)圖片標(biāo)注功能,感興趣的朋友一起看看吧2019-12-12
Python報(bào)錯(cuò)之如何解決matplotlib繪圖中文顯示成框框問(wèn)題
這篇文章主要介紹了Python報(bào)錯(cuò)之如何解決matplotlib繪圖中文顯示成框框問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-09-09
Python任務(wù)調(diào)度利器之APScheduler詳解
所謂的任務(wù)調(diào)度是指安排任務(wù)的執(zhí)行計(jì)劃,即何時(shí)執(zhí)行,怎么執(zhí)行等。這篇文章主要介紹了Python任務(wù)調(diào)度利器之APScheduler詳解,需要的朋友可以參考下2020-04-04
Pandas Dataframe數(shù)據(jù)幀的迭代之iterrows(),itertuples(),items()詳
這篇文章主要介紹了Pandas Dataframe數(shù)據(jù)幀的迭代之iterrows(),itertuples(),items()使用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-04-04

