Python利用partial偏函數(shù)生成不同的聚合函數(shù)
介紹
偏函數(shù)(functools.partial
),主要用來解決函數(shù)中某些參數(shù)是已知的固定值。利用偏函數(shù)的概念,可以生成一些新的函數(shù),在調(diào)用這些新函數(shù)時,不用再傳遞固定值的參數(shù),這樣可以使代碼更簡潔
下面列舉一些偏函數(shù)的巧妙使用方法,在使用偏函數(shù)時,需要從標(biāo)準(zhǔn)庫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ù)類,來生成不同的聚合函數(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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python實現(xiàn)無邊框進(jìn)度條的實例代碼
這篇文章主要介紹了python實現(xiàn)無邊框進(jìn)度條的實例代碼,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-12-12python作圖基礎(chǔ)之plt.contour實例詳解
contour和contourf都是畫三維等高線圖的,下面這篇文章主要給大家介紹了關(guān)于python作圖基礎(chǔ)操作之plt.contour的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-06-06PyTorch學(xué)習(xí)之軟件準(zhǔn)備與基本操作總結(jié)
這篇文章主要介紹了PyTorch學(xué)習(xí)之軟件準(zhǔn)備與基本操作總結(jié),文中有非常詳細(xì)的代碼示例,對正在學(xué)習(xí)python的小伙伴們有很好地幫助,需要的朋友可以參考下2021-05-05