Python编程 匿名函数,高阶函数

news2024/11/16 3:52:12

  • 作者简介:一名在校计算机学生、每天分享Python的学习经验、和学习笔记。 

  •  座右铭:低头赶路,敬事如仪

  • 个人主页:网络豆的主页​​​​​​

目录

 前言

一.匿名函数

1.匿名函数介绍

匿名函数应用

匿名函数作返回值

匿名函数作实参

例子

高阶函数


 前言

本章将会讲解Python编程中的匿名函数.了解用法。


一.匿名函数

1.匿名函数介绍

匿名函数指一类无须定义标识符的函数或子程序。Python用lambda语法定义匿名函数,只需用表达式而无需申明。

在python中,不通过def来声明函数名字,而是通过 lambda 关键字来定义的函数称为匿名函数。

lambda函数能接收任何数量(可以是0个)的参数,但只能返回一个表达式的值,lambda函数是一个函数对象,直接赋值给一个变量,这个变量就成了一个函数对象。

语法lambda x:x*x
自定义函数
 def f(x):
     return x * x


 print(f(3))


 lambda 形参:返回值
 f = lambda x, y: x * y
 print(f(2, 5))


 from functools import reduce
 print(reduce(lambda x, y: x*y, range(1,7)))

匿名函数应用

匿名函数作返回值

 

 # 匿名函数作为返回值
 def fx(i, j):
     # 返回的匿名函数
     return lambda :i*j


f = fx(6, 6)    # lambda :i*j
print(f())      # 函数只有在调用时才会执行


匿名函数作实参

 

 匿名函数作为实参
 def test(a, b, func):
     res = func(a, b)    # 11 + 22
     return res


 nums = test(11, 22, lambda x,y:x+y)
 print(nums)

例子

将 lis = [4,-2,3,1] --> [1,-2,3,4]
infors = [{'name':'qian' , 'age':28},{'name':'amy' , 'age':20},{'name':j
ames' , 'age':25}]
以name对应的值进行排序
[4,-2,3,1] --> [1,-2,3,4]
# [4,2,3,1] --> [1,2,3,4] --> [1,-2,3,4]
li = [4, -2, 3, 1]

# key:指定排序规则,排序之后返回原元素
li.sort(key=abs)
print(li)

高阶函数

高阶函数的概念

高阶函数的英文名叫 Higher-Order Function.

高阶函数需满足以下二个条件:

  1. 本身是一个函数
  2. 参数是函数

定义:一个函数可以接收另一个函数作为参数,这种函数就称之为高阶函数

高阶函数需满足条件:
函数名 作为 参数传入
函数名 作为 返回值

  创作不易,求关注,点赞,收藏,谢谢~ 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/127653.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【数据结构】超详细!从HashMap到ConcurrentMap,我是如何一步步实现线程安全的!

什么是HashMap? 在了解 HashMap 之前先了解一下什么是 Map; 什么是Map? 定义 Map 是一个用于存储 Key-Value 键值对的集合类,也就是一组键值对的映射,在 Java 中 Map 是一个接口,是和 Collection 接口同…

注解@Resource,注解@Qualifier

1.在进⾏类注⼊时,除了可以使⽤ Autowired 关键字之外,我们还可以使⽤ Resource 进⾏注⼊,如下代码所示: 运行结果: Autowired 和 Resource 的区别 出身不同:Autowired 来⾃于 Spring,⽽ Reso…

拾遗增补(二)——线程组

目录1.线程关联线程组:1级关联2.线程对象关联线程组:多级关联3.线程组自动归属特性4.获取根线程组5.线程组里加线程组6.组内的线程的批量停止7.递归与非递归取得组内对象可以把线程归属到某一个线程组中,线程组中可以有线程对象,也…

58.Python的递归函数

58.Python的递归函数 文章目录58.Python的递归函数1.递归的形象解释2.定义3.步骤4.终止条件5.优点6.缺点7.调用深度8.课堂实例9.计算n的阶乘9.1什么是阶乘9.2计算5!1.递归的形象解释 我们首先看一段视频,来形象理解什么是递归。 视频作者:p…

完整的OpenDDS的发布订阅编写及源码(Windows)

一个完整的OpenDDS的发布订阅编写及源码,包括SimuMsg.idl、SimuMsg.mwc和SimuMsg.mpc,SimuMsgCommon_Export.h、publisher.cpp、subscriber.cpp、SimuMsgDataReaderListenerImpl.h和SimuMsgDataReaderListenerImpl.cpp、SimuMsgDataWriterListenerImpl.h和SimuMsgDataWriterL…

还有企业没有在用它嘛! 适配于多行业的管理系统,各企业之首选

在信息技术高速发展的现代社会,世界经济一体化和企业经营全球化已成为大势所趋。在此背景下,企业为增强自身的竞争力,就要强化管理,规范业务流程,提高透明度,加快商品资金周转,以及为流通领域信…

使用MariaDB线程池提高MySQL的扩展性

摘要:MySQL的线程池能够有效地解决大量短连接的性能问题,大幅提高MySQL数据库的扩展性。但官方MySQL的线程池在收费的企业版中才有,免费的社区版中没有这个功能,这里介绍MairaDB的线程池。 关于作者,姚远:…

不用梯子,GitHub也能访问并提速

引言 我们都知道国内访问github会非常慢,甚至打不开,具体原因这里就不聊了~我们这里聊怎么不用梯子,GitHub也能访问并提速! Github打开慢的原因 Github打开慢的原因其中一个原因:GitHub的CDN域名遭到DNS污染&#xf…

好用的开源个人博客推荐

原文网址:好用的开源个人博客推荐_IT利刃出鞘的博客-CSDN博客 简介 本文推荐个人从几十款开源个人博客中精选的几款开源博客。 halo Github 地址 :https://github.com/halo-dev/halo Star : 24.3k 简介 :一个优秀的开源博客应用。 技术 …

java学习day66(乐友商城)搜索过滤

1.过滤功能分析 首先看下页面要实现的效果: 整个过滤部分有3块: 顶部的导航,已经选择的过滤条件展示: 商品分类面包屑,根据用户选择的商品分类变化 其它已选择过滤参数 过滤条件展示,又包含3部分 商品分…

CNN神经网络

CNN神经网络0.引言0.1.卷积0.2.Relu函数0.3.池化pooling0.4.小节1.前向传播1.1.input layer --> convolution layer1.2.Hidden Layer --> convolution layer1.3.Hidden layer --> pooling layer1.4.Hidden layer --> full connected layer1.5.小节2.反向传播2.1.po…

如何实现微信和淘宝的扫码登录

1、引言 扫码登录这个功能,最早应该是微信的PC端开始搞,虽然有点反人类的功能(不扫码也没别的方式登录),但不得不说还是很酷的。 下面这张图,不管是IM开发者还是普通用户,应该很熟悉&#xff…

高德地图WebGIS

GIS:地理信息系统 1 Web前端JSAPI X.1 创建app ​​​​ X.2 地图显示

热榜,Alibaba最新发布SprinBoot:进阶原理实战与面试题分析指南

为什么要写这本书? 我们知道,Spring Boot是一个集成性的开源框架,内部整合了很多第三方组件和框架。这些组件和框架应用如此之广泛,以至于大家反而往往对如何更好地使用Spring Boot自身的功能特性并不是很重视。事实上&#xff0…

自动化会计从这四个流程开始

自动化会计从这四个流程开始 会计和财务业务流程的自动化对企业领导者来说是一个巨大的机会。对于首席财务官 (CFO) 而言,可以让他们在改善运营和降低成本等传统角色中脱颖而出,同时利用他们在自动化方面的经验成为整个公司数字业…

SpringBoot 单元测试利器-Mockito

Mockito 是一种 Java mock 框架,他主要是用来做 mock 测试的,他可以模拟任何 Spring 管理的 bean、模拟方法的返回值、模拟抛出异常...等,在了解 Mockito 的具体用法之前,得先了解什麽是 mock 测试 1. 什么是 mock 测试&#xff…

Java Long对象对比,用equals函数

文章目录一、前文二、调试三、后记一、前文 同事问我一个问题,我咋一看也愣住了 代码: if(ObjectUtil.isNotNull(temp.getUserId()) && temp.getUserId()!SecurityUtils.getUserId()) {logger.error(temp.toString());logger.error("Securi…

ICV:车规级激光雷达市场规模超7亿美元,补盲雷达有望2024年量产

全球前沿科技咨询机构ICV近期发布了车载激光雷达的市场分析报告,ICV在报告中表示激光雷达是自动驾驶传感器中增速最快的传感器,预计未来五年的复合年增长率达43.4%。此外,混合固态式激光雷达近五年内将仍以应用转镜技术为主。 本报告旨在评估…

【store商城项目05】新增收获地址的开发

新增收获地址的开发1.创建地址表2.创建实体类3.持久层的开发3.1规划需要执行的SQL语句3.2Mapper接口与抽象方法3.3配置SQL映射3.4测试4.业务层的开发4.1规划异常4.2接口和抽象方法4.3实现抽象方法4.4测试5.控制层的开发5.1规划异常5.2设计请求5.3处理请求5.4测试6前端页面1.创建…

【Linux】Linux权限(二)默认权限的来源

默认权限1.默认权限2.默认权限(最终权限)由谁决定2.1起始权限2.2umask(权限掩码)2.3 最终权限的计算3.总结1.默认权限 在Linux下,我们以普通用户创建一个普通文件, 这个普通文件(这里不包括可执行)的默认权…