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

 更新时间:2024年03月31日 16:42:18   作者:数据人阿多  
本文主要介绍了Python利用partial偏函数生成不同的聚合函数,利用偏函数的概念,可以生成一些新的函数,在调用这些新函数时,不用再传递固定值的参数,这样可以使代码更简洁,感兴趣的可以了解一下

介绍

偏函数(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生成不同的聚合函数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家! 

 

相关文章

  • Spring @Enable模块驱动原理及使用实例

    Spring @Enable模块驱动原理及使用实例

    这篇文章主要介绍了Spring @Enable模块驱动原理及使用实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-06-06
  • Python .py生成.pyd文件并打包.exe 的注意事项说明

    Python .py生成.pyd文件并打包.exe 的注意事项说明

    这篇文章主要介绍了Python .py生成.pyd文件并打包.exe 的注意事项说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • python实现数组插入新元素的方法

    python实现数组插入新元素的方法

    这篇文章主要介绍了python实现数组插入新元素的方法,涉及Python中insert方法的相关使用技巧,需要的朋友可以参考下
    2015-05-05
  • 布同自制Python函数帮助查询小工具

    布同自制Python函数帮助查询小工具

    Python的自带文档功能很不错,给与我耳目一新的感觉。如果在CMD中进行“行式编程”编程的话,可以随时随地的查询函数的功能,非常方便。
    2011-03-03
  • python playwright 库上传和下载操作(自动化测试 playwright)

    python playwright 库上传和下载操作(自动化测试 playwright)

    这篇文章主要介绍了python playwright 库上传和下载操作(自动化测试 playwright ),playwright中的上传和下载比selenium的上传和下载要简便些,本文结合实例代码给大家介绍的非常详细,需要的朋友可以参考下
    2023-05-05
  • 使用 Django Highcharts 实现数据可视化过程解析

    使用 Django Highcharts 实现数据可视化过程解析

    这篇文章主要介绍了使用 Django Highcharts 实现数据可视化过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-07-07
  • python导出mysql指定binlog文件实现demo

    python导出mysql指定binlog文件实现demo

    这篇文章主要介绍了python导出mysql指定binlog文件实现demo,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-12-12
  • 基于Python中random.sample()的替代方案

    基于Python中random.sample()的替代方案

    这篇文章主要介绍了基于Python中random.sample()的替代方案,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-05-05
  • Python爬虫之模拟知乎登录的方法教程

    Python爬虫之模拟知乎登录的方法教程

    在爬虫过程中,有些页面在登录之前是被禁止抓取的,这个时候就需要模拟登陆了,下面这篇文章主要给大家介绍了利用Python爬虫模拟知乎登录的方法教程,文中介绍的非常详细,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-05-05
  • 使用Django的模版来配合字符串翻译工作

    使用Django的模版来配合字符串翻译工作

    这篇文章主要介绍了使用Django的模版来配合字符串翻译工作,Django是最具人气的Python开发框架,需要的朋友可以参考下
    2015-07-07

最新评论