Python 列表映射后的平均值

本篇閱讀的代碼片段來自于30-seconds-of-python。
1、average_by
def average_by(lst, fn=lambda x: x):
return sum(map(fn, lst), 0.0) / len(lst)
# EXAMPLES
average_by([{ 'n': 4 }, { 'n': 2 }, { 'n': 8 }, { 'n': 6 }], lambda x: x['n']) # 5.0
該函數(shù)用于在列表中求取平均數(shù)。該代碼片段中主要使用了lambda表達(dá)式和map函數(shù)。該函數(shù)的主要邏輯是使用lambda表達(dá)式和map函數(shù)提取由待計(jì)算的數(shù)值組成的迭代器,然后使用sum函數(shù)計(jì)算列表的和,再除以列表長度。
2、lambda表達(dá)式
形如lambda parameters: expression的表達(dá)式可以創(chuàng)建一個(gè)匿名函數(shù)。在該代碼片段中,lambda表達(dá)式出現(xiàn)在函數(shù)average_by的參數(shù)定義中,作為一個(gè)參數(shù)傳給了fn。因此在average_by函數(shù)體中fn作為剛剛在參數(shù)中定義的函數(shù)發(fā)揮作用。
函數(shù)average_by的默認(rèn)參數(shù)中的lambda表達(dá)式是一個(gè)直接返回輸入?yún)?shù)的函數(shù)。在例子中,向average_by傳入的匿名函數(shù)返回字典中key值為n項(xiàng)的值。
3、map函數(shù)
map函數(shù)是Python內(nèi)置的一個(gè)高階函數(shù),這個(gè)函數(shù)很有意思,它的參數(shù)是一個(gè)函數(shù)以及一個(gè)可迭代對象。它會返回一個(gè)迭代器,這個(gè)迭代器會將參數(shù)中的函數(shù)應(yīng)用在參數(shù)中可迭代對象上。
4、其他類似函數(shù)
在30-seconds-of-python中還有一些類似的代碼片段。在理解了average_by函數(shù)之后,這些都很容理解。
4.1 max_by
def max_by(lst, fn):
return max(map(fn, lst))
# EXAMPLES
max_by([{ 'n': 4 }, { 'n': 2 }, { 'n': 8 }, { 'n': 6 }], lambda v : v['n']) # 8
4.2 min_by
def min_by(lst, fn):
return min(map(fn, lst))
# EXAMPLES
min_by([{ 'n': 4 }, { 'n': 2 }, { 'n': 8 }, { 'n': 6 }], lambda v : v['n']) # 2
4.3 sum_by
def sum_by(lst, fn):
return sum(map(fn, lst))
# EXAMPLES
sum_by([{ 'n': 4 }, { 'n': 2 }, { 'n': 8 }, { 'n': 6 }], lambda v : v['n']) # 20
到此這篇關(guān)于Python 列表映射后的平均值的文章就介紹到這了,更多相關(guān)Python 列表映射內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用PyTorch實(shí)現(xiàn)限制GPU顯存的可使用上限
從?PyTorch?1.4?版本開始,引入了一個(gè)新的功能,可以允許用戶為特定的?GPU?設(shè)備設(shè)置進(jìn)程可使用的顯存上限比例,下面我們就來看看具體實(shí)現(xiàn)方法吧2024-03-03
推薦技術(shù)人員一款Python開源庫(造數(shù)據(jù)神器)
今天小編給大家推薦一款Python開源庫,技術(shù)人必備的造數(shù)據(jù)神器!非常不錯(cuò),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2020-07-07
Python3.13?+Pycharm?開發(fā)環(huán)境配置
本文全面解釋了如何配置Python3.13和PyCharm的開發(fā)環(huán)境,適合初學(xué)者,詳細(xì)介紹了Python安裝步驟、選擇解釋器、常用快捷鍵和推薦插件,強(qiáng)調(diào)了虛擬環(huán)境的重要性,以及如何使用PyCharm進(jìn)行高效開發(fā),感興趣的可以了解一下2024-11-11
Python使用lambda拋出異常實(shí)現(xiàn)方法解析
這篇文章主要介紹了Python使用lambda拋出異常實(shí)現(xiàn)方法解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08
Python實(shí)現(xiàn)樸素貝葉斯分類器的方法詳解
這篇文章主要介紹了Python實(shí)現(xiàn)樸素貝葉斯分類器的方法,詳細(xì)分析了樸素貝葉斯分類器的概念、原理、定義、使用方法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2018-07-07

