当前位置: 首页 > news >正文

Python知识点11---高阶函数

提前说一点:如果你是专注于Python开发,那么本系列知识点只是带你入个门再详细的开发点就要去看其他资料了,而如果你和作者一样只是操作其他技术的Python API那就足够了。

本篇介绍一下Python的内置函数也叫高阶函数,就是Python自带可直接调用的函数,向我们日常用的len、range等等这些都是内置函数,这一部分内容本应放在函数哪一篇说,但是由于它太重要了,所有想了想单独提出来一篇

首先明确一点,我要说的不是len那些普通的内置函数,如果和我一样是做大数据开发的,那么你一定要知道我下面说的函数

Python中有一种高阶函数,和Scala中的高阶函数一样都是以方法做参数运作的,下面我给大家罗列三个最重要的高阶方法

第一个:map(fun,lis),该方法是将一个列表中每一个元素进行逐一操作,操作的过程有fun决定

list1 = [1,2,3,4,5]def map_fun( i ) :return i**2result = map(map_fun,list1)print(result)结果:[1, 4, 9, 16, 25]

第二个:reduce(fun,lst),该方法可以将一个列表中的每一个元素,做迭代累加,因此,它的fun需要支持两个参数进行迭代

import functools
list1 = [1,2,3,4,5]def reduce_fun( a , b ) :return a + bresult = functools.reduce(reduce_fun , list1)print(result)
结果:15

第三个:filter(fun , list) ,该方法将数据集过滤,如果fun的返回值是True,则表示符合条件保留数据,否则舍弃,该方法结果最终返回的是一个filter对象,需要使用list方法转换成列表对象

list1 = [1,2,3,4,5]def filter_fun(x):return x % 2 == 0result = filter(filter_fun,list1)
print(list(result))
结果:[2, 4]

相关文章:

  • 冒泡排序与快速排序
  • C#中的值类型与引用类型
  • 计算机毕业设计 | SpringBoot+vue仓库管理系统(附源码)
  • 欧科云链:Web3.0时代 具备链上数据分析能力的公司愈发凸显其价值
  • JCR一区级 | Matlab实现TCN-BiGRU-MATT时间卷积双向门控循环单元多特征分类预测
  • 解释Python中的PEP 8是什么 为什么它很重要
  • 基于Chisel的FPGA流水灯设计
  • ios:文本框默认的copy、past改成中文复制粘贴
  • 平移数据c++
  • 【吊打面试官系列】Java高并发篇 - 什么是自旋 ?
  • js实现基础购物车的制作
  • Debian常用指令指南:高效管理你的Linux系统
  • vue-标签选择
  • HTML (总结黑马的)
  • JVM学习笔记(持续更新)
  • ----------
  • 「前端」从UglifyJSPlugin强制开启css压缩探究webpack插件运行机制
  • 230. Kth Smallest Element in a BST
  • Consul Config 使用Git做版本控制的实现
  • Java 11 发布计划来了,已确定 3个 新特性!!
  • java小心机(3)| 浅析finalize()
  • java中具有继承关系的类及其对象初始化顺序
  • Mysql数据库的条件查询语句
  • Netty 框架总结「ChannelHandler 及 EventLoop」
  • nodejs:开发并发布一个nodejs包
  • nodejs调试方法
  • Nodejs和JavaWeb协助开发
  • python 学习笔记 - Queue Pipes,进程间通讯
  • ucore操作系统实验笔记 - 重新理解中断
  • Vim 折腾记
  • Vue.js-Day01
  • 动态魔术使用DBMS_SQL
  • 复杂数据处理
  • 前端性能优化--懒加载和预加载
  • 入门到放弃node系列之Hello Word篇
  • 深度学习在携程攻略社区的应用
  • 使用 Docker 部署 Spring Boot项目
  • 因为阿里,他们成了“杭漂”
  • 用Canvas画一棵二叉树
  • 在Unity中实现一个简单的消息管理器
  • Redis4.x新特性 -- 萌萌的MEMORY DOCTOR
  • 浅谈sql中的in与not in,exists与not exists的区别
  • 新年再起“裁员潮”,“钢铁侠”马斯克要一举裁掉SpaceX 600余名员工 ...
  • ​学习笔记——动态路由——IS-IS中间系统到中间系统(报文/TLV)​
  • #、%和$符号在OGNL表达式中经常出现
  • ${factoryList }后面有空格不影响
  • (175)FPGA门控时钟技术
  • (5)STL算法之复制
  • (6)【Python/机器学习/深度学习】Machine-Learning模型与算法应用—使用Adaboost建模及工作环境下的数据分析整理
  • (javaweb)Http协议
  • (vue)页面文件上传获取:action地址
  • (多级缓存)多级缓存
  • (非本人原创)我们工作到底是为了什么?​——HP大中华区总裁孙振耀退休感言(r4笔记第60天)...
  • (分布式缓存)Redis分片集群
  • (附源码)php投票系统 毕业设计 121500