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

 

相关文章

  • Python 基础知识之字符串处理

    Python 基础知识之字符串处理

    这篇文章主要介绍了Python 基础知识之字符串处理的相关资料,这里对字符串的判断,搜索匹配及字符串变换进行了详解,需要的朋友可以参考下
    2017-01-01
  • Centos环境部署django项目的全过程(永久复用)

    Centos环境部署django项目的全过程(永久复用)

    Django是一款针对Python环境的WEB开发框架,能够帮助我们构架快捷,下面这篇文章主要给大家介绍了关于Centos环境部署django项目的相关资料,需要的朋友可以参考下
    2022-10-10
  • python微信好友数据分析详解

    python微信好友数据分析详解

    这篇文章主要为大家详细介绍了python微信好友数据分析,实现对微信好友的获取,并对省份、性别等数据分析,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-11-11
  • 对python list 遍历删除的正确方法详解

    对python list 遍历删除的正确方法详解

    今天小编就为大家分享一篇对python list 遍历删除的正确方法详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-06-06
  • Python 爬取网页图片详解流程

    Python 爬取网页图片详解流程

    没想到python是如此强大,令人着迷,以前看见图片总是一张一张复制粘贴,现在好了,学会python就可以用程序将一张张图片,保存下来。今天网上冲浪看到很多美图,可是图片有点多,不想一张一张地复制粘贴,怎么办呢?办法总是有的,即便没有我们也可以创造一个办法
    2021-11-11
  • Python Bleach保障网络安全防止网站受到XSS(跨站脚本)攻击

    Python Bleach保障网络安全防止网站受到XSS(跨站脚本)攻击

    Bleach 不仅可以清理 HTML 文档,还能够对链接进行处理,检查是否是合法格式,并可以使用白名单来控制哪些 HTML 标签、属性是安全的,因此非常适合用于清洁用户输入的数据,确保网站安全
    2024-01-01
  • python字符串的index和find的区别详解

    python字符串的index和find的区别详解

    这篇文章主要介绍了python字符串的index和find的区别,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-06-06
  • Python3如何使用多线程升程序运行速度

    Python3如何使用多线程升程序运行速度

    这篇文章主要介绍了Python3如何使用多线程升程序运行速度,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-08-08
  • 基于Python利用Faker批量测试数据

    基于Python利用Faker批量测试数据

    这篇文章主要介绍了基于Python利用Faker批量测试数据。测试过程中,经常需要批量去造数据,方法有很多,最简单方便的应该是使用python 的一个三方库Faker。下面我们就来看看三方库Faker如何批量测试数据,需要的朋友可以参考一下
    2022-03-03
  • Django web框架使用url path name详解

    Django web框架使用url path name详解

    这篇文章主要介绍了Django web框架使用url path name详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-04-04

最新评论