Python利用partial偏函數(shù)生成不同的聚合函數(shù)
介紹
偏函數(shù)(functools.partial),主要用來(lái)解決函數(shù)中某些參數(shù)是已知的固定值。利用偏函數(shù)的概念,可以生成一些新的函數(shù),在調(diào)用這些新函數(shù)時(shí),不用再傳遞固定值的參數(shù),這樣可以使代碼更簡(jiǎn)潔
下面列舉一些偏函數(shù)的巧妙使用方法,在使用偏函數(shù)時(shí),需要從標(biāo)準(zhǔn)庫(kù)functools中導(dǎo)入
from functools import partial
小編環(huán)境
import sys
print('python 版本:',sys.version.split('|')[0])
#python 版本: 3.11.4
生成不同的聚合函數(shù)
1. 創(chuàng)建底層的元函數(shù)、函數(shù)類
from functools import partial
def aggregation_fn_meta(aggregation_fn, values):
return aggregation_fn(values)
def aggregation_fn_class(aggregation_fn):
return partial(aggregation_fn_meta, aggregation_fn)
2. 基于函數(shù)類,來(lái)生成不同的聚合函數(shù)
基于內(nèi)建函數(shù)創(chuàng)建(python中可以直接使用的函數(shù))
sum_fn=aggregation_fn_class(sum) sum_fn([1,2,3,4,5,1,2,10]) #28 max_fn=aggregation_fn_class(max) max_fn([1,2,3,4,5,1,2,10]) #10 min_fn=aggregation_fn_class(min) min_fn([1,2,3,4,5,1,2,10])
基于自定義函數(shù)創(chuàng)建
def count(values):
return len(values)
count_fn=aggregation_fn_class(count)
count_fn([1,2,3,4,5,1,2,10]) #8
def distinct_count(values):
return len(set(values))
distinct_count_fn=aggregation_fn_class(distinct_count)
distinct_count_fn([1,2,3,4,5,1,2,10]) #6到此這篇關(guān)于Python利用partial偏函數(shù)生成不同的聚合函數(shù)的文章就介紹到這了,更多相關(guān)Python生成不同的聚合函數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Spring @Enable模塊驅(qū)動(dòng)原理及使用實(shí)例
這篇文章主要介紹了Spring @Enable模塊驅(qū)動(dòng)原理及使用實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06
Python .py生成.pyd文件并打包.exe 的注意事項(xiàng)說(shuō)明
這篇文章主要介紹了Python .py生成.pyd文件并打包.exe 的注意事項(xiàng)說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧2021-03-03
python實(shí)現(xiàn)數(shù)組插入新元素的方法
這篇文章主要介紹了python實(shí)現(xiàn)數(shù)組插入新元素的方法,涉及Python中insert方法的相關(guān)使用技巧,需要的朋友可以參考下2015-05-05
python?playwright?庫(kù)上傳和下載操作(自動(dòng)化測(cè)試?playwright)
這篇文章主要介紹了python?playwright?庫(kù)上傳和下載操作(自動(dòng)化測(cè)試?playwright?),playwright中的上傳和下載比selenium的上傳和下載要簡(jiǎn)便些,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2023-05-05
使用 Django Highcharts 實(shí)現(xiàn)數(shù)據(jù)可視化過程解析
這篇文章主要介紹了使用 Django Highcharts 實(shí)現(xiàn)數(shù)據(jù)可視化過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-07-07
python導(dǎo)出mysql指定binlog文件實(shí)現(xiàn)demo
這篇文章主要介紹了python導(dǎo)出mysql指定binlog文件實(shí)現(xiàn)demo,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12

