python 高阶函数简单介绍


Posted in Python onFebruary 19, 2021

把函数作为参数传入,这样的函数称为高阶函数,高阶函数是函数式编程的体现。函数式编程就是指这种高度抽象的编程范式。

1.体验高阶函数

在Python中,abs()函数可以完成对数字求绝对值计算。

abs(-10) # 10

round()函数可以完成对数字的四舍五入计算。

round(1.2) # 1
round(1.9) # 2

需求:任意两个数字,按照指定要求整理数字后再进行求和计算。

方法1

def add_num(a, b):
  return abs(a) + abs(b)


result = add_num(-1, 2)
print(result) # 3

方法2

def sum_num(a, b, f):
  return f(a) + f(b)


result = sum_num(-1, 2, abs)
print(result) # 3

注意:两种方法对比之后,发现,方法2的代码会更加简洁,函数灵活性更高。

函数式编程大量使用函数,减少了代码的重复,因此程序比较短,开发速度较快。

2.内置高阶函数

2.1 map()

map(func, lst),将传入的函数变量func作用到lst变量的每个元素中,并将结果组成新的列表(Python2)/迭代器(Python3)返回。

需求:计算list1序列中各个数字的2次方。

list1 = [1, 2, 3, 4, 5]


def func(x):
  return x ** 2


result = map(func, list1)

print(result) # <map object at 0x0000013769653198>
print(list(result)) # [1, 4, 9, 16, 25]

2.2 reduce()

reduce(func,lst),其中func必须有两个参数。每次func计算的结果继续和序列的下一个元素做累积计算。

注意:reduce()传入的参数func必须接收2个参数。

需求:计算list1序列中各个数字的累加和。

import functools

list1 = [1, 2, 3, 4, 5]


def func(a, b):
  return a + b


result = functools.reduce(func, list1)

print(result) # 15

2.3 filter()

filter(func, lst)函数用于过滤序列, 过滤掉不符合条件的元素, 返回一个 filter 对象。如果要转换为列表, 可以使用 list() 来转换。

list1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]


def func(x):
  return x % 2 == 0


result = filter(func, list1)

print(result) # <filter object at 0x0000017AF9DC3198>
print(list(result)) # [2, 4, 6, 8, 10]

以上就是python 高阶函数简单介绍的详细内容,更多关于python 高阶函数的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
Python strip lstrip rstrip使用方法
Sep 06 Python
简单的编程0基础下Python入门指引
Apr 01 Python
Python内置函数delattr的具体用法
Nov 23 Python
Python中字典的浅拷贝与深拷贝用法实例分析
Jan 02 Python
wxpython实现图书管理系统
Mar 12 Python
Windows 64位下python3安装nltk模块
Sep 19 Python
在python中利用最小二乘拟合二次抛物线函数的方法
Dec 29 Python
浅谈Pycharm中的Python Console与Terminal
Jan 17 Python
利用Pandas和Numpy按时间戳将数据以Groupby方式分组
Jul 22 Python
Python实现剪刀石头布小游戏(与电脑对战)
Dec 31 Python
详解Python 循环嵌套
Jul 09 Python
浅谈python 类方法/静态方法
Sep 18 Python
如何用Matlab和Python读取Netcdf文件
Feb 19 #Python
python中最小二乘法详细讲解
Feb 19 #Python
python中scipy.stats产生随机数实例讲解
Feb 19 #Python
python的scipy.stats模块中正态分布常用函数总结
Feb 19 #Python
python+opencv实现车道线检测
Feb 19 #Python
python UIAutomator2使用超详细教程
Feb 19 #Python
Python实现曲线拟合的最小二乘法
Feb 19 #Python
You might like
php 中的str_replace 函数总结
2007/04/27 PHP
在html文件中也可以执行php语句的方法
2015/04/09 PHP
深入理解PHP中的Streams工具
2015/07/03 PHP
php array_keys 返回数组的键名
2016/10/25 PHP
Zend Framework路由器用法实例详解
2016/12/11 PHP
php快速导入大量数据的实例方法
2019/09/23 PHP
通过jQuery源码学习javascript(三)
2012/12/27 Javascript
jquery获取iframe中的dom对象(两种方法)
2013/07/02 Javascript
JS保留两位小数 四舍五入函数的小例子
2013/11/20 Javascript
JavaScript实现的石头剪刀布游戏源码分享
2014/08/22 Javascript
nodejs教程之异步I/O
2014/11/21 NodeJs
轻松创建nodejs服务器(6):作出响应
2014/12/18 NodeJs
原生javascript实现Tab选项卡切换功能
2015/01/12 Javascript
JSON字符串转换JSONObject和JSONArray的方法
2016/06/03 Javascript
Javascript将数字转化成为货币格式字符串
2016/06/22 Javascript
jQuery实现CheckBox全选、全不选功能
2017/01/11 Javascript
jQuery读取XML文件的方法示例
2017/02/03 Javascript
基于vue-cli配置lib-flexible + rem实现移动端自适应
2017/12/26 Javascript
Vue2.0实现简单分页及跳转效果
2019/07/29 Javascript
微信小程序 wx:for遍历循环使用实例解析
2019/09/09 Javascript
原生JS实现九宫格抽奖
2020/09/13 Javascript
Python 字符串与二进制串的相互转换示例
2018/07/23 Python
对Python3 pyc 文件的使用详解
2019/02/16 Python
python使用wxpy实现微信消息防撤回脚本
2019/04/29 Python
wxpython多线程防假死与线程间传递消息实例详解
2019/12/13 Python
Python使用GitPython操作Git版本库的方法
2020/02/29 Python
Python AutoCAD 系统设置的实现方法
2020/04/01 Python
pip/anaconda修改镜像源,加快python模块安装速度的操作
2021/03/04 Python
台湾东南旅游社网站:东南旅游
2019/02/11 全球购物
金士达面试非笔试
2012/03/14 面试题
开水果连锁店创业计划书
2013/12/29 职场文书
出生公证委托书
2014/04/03 职场文书
2015年员工工作表现评语
2015/03/25 职场文书
2015年汽车销售员工作总结
2015/07/24 职场文书
如何使用PostgreSQL进行中文全文检索
2021/05/27 PostgreSQL
Java 超详细讲解hashCode方法
2022/04/07 Java/Android