Python利用partial偏函式生成不同的聚合函式

PYTHON人马兽發表於2024-04-15
                        <div id="navCategory"><h5 class="catalogue">目錄</h5><ul class="first_class_ul"><li><a href="#_label0">介紹</a></li><li><a href="#_label1">小編環境</a></li><li><a href="#_label2">生成不同的聚合函式</a></li></ul></div><p class="maodian"><a name="_label0"></a></p><h2>介紹</h2>

偏函式(functools.partial),主要用來解決函式中某些引數是已知的固定值。利用偏函式的概念,可以生成一些新的函式,在呼叫這些新函式時,不用再傳遞固定值的引數,這樣可以使程式碼更簡潔

下面列舉一些偏函式的巧妙使用方法,在使用偏函式時,需要從標準庫functools中匯入

from functools import partial

小編環境

import sys

print('python 版本:',sys.version.split('|')[0])

python 版本: 3.11.4

生成不同的聚合函式

1. 建立底層的元函式、函式類

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. 基於函式類,來生成不同的聚合函式

基於內建函式建立(python中可以直接使用的函式)

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])

基於自定義函式建立

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

到此這篇關於Python利用partial偏函式生成不同的聚合函式的文章就介紹到這了,更多相關Python生成不同的聚合函式內容請搜尋創業專案排行榜前十名http://www.piaodoo.com/以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援創業專案排行榜前十名http://www.piaodoo.com/!

                        </p>友情連線:<p> 

創業專案排行榜前十名

美文集

茂名一技

茂名一技

手遊排行前十名

相關文章