python 匿名函数 lambda,内置函数 map、filter、reduce、min/max

python 匿名函数 lambda,内置函数 map、filter、reduce、min/max

  • 匿名函数 lambda
  • 内置函数 map、filter、reduce
    • map
    • filter
    • reduce
    • min/max

匿名函数 lambda

lambda 函数是一种小型、匿名的内联函数,它可以具有任意数量的参数,但只有一个表达式。lambda 函数的语法格式为:lambda arguments: expression

f = lambda arguments: expression

相当于

def f(arguments):return expression

例子:

# lambda 函数
f = lambda a, b, c : a + b + c
print(f(5, 6, 2))  # 输出 13# 等价于普通函数
def f(a, b, c):return a+b+c
print(f(5, 6, 2))  # 输出 13

lambda 函数通常用于编写简单的、单行的函数,通常在需要函数作为参数传递的情况下使用,例如在 map()、filter()、reduce() 等函数中。

https://www.runoob.com/python3/python-lambda.html

内置函数 map、filter、reduce

map

map() 会根据提供的函数对指定序列做映射,语法格式为:map(function, iterable, ...)

第一个参数 function 以参数序列 iterable 中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。

例子:
有定义好的 计算平方的函数 square function。

def square(x):return x ** 2map(square, [1, 2, 3, 4, 5])  # 输出:[1, 4, 9, 16, 25]

相当于

map(lambda x: x ** 2, [1, 2, 3, 4, 5])  # 输出:[1, 4, 9, 16, 25]

另外,当提供了两个列表时,表示对相同位置的列表数据进行相加

map(lambda x, y: x + y, [1, 3, 5, 7, 9], [2, 4, 6, 8, 10])
# 输出:[3, 7, 11, 15, 19]

https://www.runoob.com/python/python-func-map.html

filter

filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。语法格式为filter(function, iterable)

第一个为函数 function,第二个为序列 iterable。iterable 中的每个元素作为参数传递给 function 进行判断,对应地返回 True 或 False,最后将返回 True 的元素放到新列表中。

def is_odd(n):return n % 2 == 1odd_numbers = filter(is_odd, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
print(odd_numbers)  # [1, 3, 5, 7, 9]

等价于

odd_numbers = list(filter(lambda x: x % 2 == 1, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]))
print(odd_numbers)  # 输出:[1, 3, 5, 7, 9]

https://m.runoob.com/python/python-func-filter.html

reduce

reduce() 函数会对参数序列中的元素进行累积,语法结构是reduce(function, iterable[, initializer])

注意:需要引入 functools 模块from functools import reduce来调用 reduce() 函数。因为 Python3.x reduce() 已经被移到 functools 模块里了。

函数 function 将一个数据集合(链表,元组等)iterable[, initializer] 中的所有数据进行下列操作:函数 function(有两个参数)先对集合中的第 1、2 个元素进行操作,再对得到的结果与第3个元素进行操作,依次类推。

from functools import reducedef add(x, y) :return x + ysum = reduce(add, [1,2,3,4,5])
print(sum)  # 输出:15

等价于:

from functools import reducesum = reduce(lambda x, y: x+y, [1,2,3,4,5])
print(sum)  # 输出:15

https://www.runoob.com/python/python-func-reduce.html

min/max

内置函数 min/max 的语法是min(iterable, *iterables, key, default),其中key涉及到min/max借助匿名函数的进阶功能。

假设需要找到 set (1,'a'), (3,'c'), (4,'e'), (-1,'z') 中索引1最小的元素,则使用:

lis = [(1,'a'), (3,'c'), (4,'e'), (-1,'z')]
t = min(lis, key = lambda x: x[1])
print(t)  # 输出: (1,'a')

又如CLIP代码,

bigram = min(pairs, key=lambda pair: self.bpe_ranks.get(pair, float('inf')))

表示通过比较 pairs 中所有元素在 self.bpe_ranks 中的键值,返回键值最小的元素。

https://www.nhooo.com/python/python-methods-built-in-min.html
http://t.csdnimg.cn/vY7uz

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

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

相关文章

Faiss 原理与使用总结:高效的相似性搜索库

Faiss 是一个高效的相似性搜索库,用于在大规模数据集上执行相似性搜索和聚类操作。本文将介绍 Faiss 的原理以及如何在实际项目中使用 Faiss 进行相似性搜索。 Faiss 原理 Faiss 是 Facebook AI Research 开发的库,它利用了向量量化和倒排索引等技术&a…

测试JAVA 测开

测试、java测开 1、测试用例要素(4个重要要素)2、测试用例的好处3、测试用例的设计方法3.1 基于需求设计测试用例3.2 等价类3.3 边界值3.4 判定表 1、测试用例要素(4个重要要素) 测试环境操作步骤测试数据预期结果 2、测试用例的…

企业数字化与数智化的区别是什么?

一、引言 随着信息技术的迅猛发展和应用普及,企业面临着数字化与数智化两大转型趋势。数字化主要关注数据的收集、整合和流程优化,而数智化则在此基础上进一步引入智能技术,实现业务的自动化、智能化和决策的科学化。探讨企业数字化与数智化…

工业相机飞拍原理

一、什么是工业相机的飞拍技术 工业相机飞拍技术是一项高效、快速、准确的图像采集和处理技术。是指在高速运动的物体,或场景中使用工业相机进行拍摄,实现高效、准确、稳定的图像采集和处理。 二、工业相机飞拍的实现原理 飞拍就是使用硬件比较输出或精…

初级C语言:6 结构体

6.1 结构体的声明 结构是一些值的集合,这些值称为成员变量。结构的每个成员可以是不同类型的变量。 内置类型:char;short;int;long;long long;float;double 复杂对象的描述就会使…

通过拖拽动态调整div的大小

最近遇到一个需求,页面展示两块内容,需要通过拖拽可以动态改变大小,如下图: 实现思路:其实就是改变div样式的width,本质上就是Dom操作。 完整代码:(基于vue2项目实践) …

面试题:HashMap线程不安全 ConcurrentHashMap为什么线程安全

文章目录 背景常见集合线程安全性HashMap为什么线程不安全?怎么保证HashMap线程安全 ConcurrentHashMap为什么线程安全代码中分析 小结 背景 面试的时候先会喊你说说集合,那些集合线程不安全?当你说了HashMap线程不安全,面试官可能…

第 7 章 导航实现(自学二刷笔记)

重要参考: 课程链接:https://www.bilibili.com/video/BV1Ci4y1L7ZZ 讲义链接:Introduction Autolabor-ROS机器人入门课程《ROS理论与实践》零基础教程 准备工作 请先安装相关的ROS功能包: 安装 gmapping 包(用于构建地图): sudo apt inst…

3d世界坐标转换到某个二维平面。

有个功能需要截取某个平面的点云数据,然后计算宽高。需要将3d点投影到二维平面上。 //将3d坐标点转换为2d/*** 法向量(A, B, C)* 常量D* 原点x0,y0,z0* 方向向量(vx, vy, vz)* 投影点(x,y,z)* public static double[] Convert3DPointTo2D(double A, double B, doub…

爬虫机试题-爬取新闻网站

之前投简历时遇到了这样的一个笔试。本以为会是数据结构算法之类的没想到直接发了一个word直接提需求,感觉挺有意思就写了这篇文章,感兴趣的朋友可以看看。 拿到urllist 通过分析页面结构我们得以知道,这个页面本身没有新闻信息,是…

什么是强化学习?什么是自监督学习?

强化学习(Reinforcement Learning,RL)是机器学习的一个范式和方法论,主要用于描述和解决智能体(agent)在与环境的交互过程中,通过学习策略以达成回报最大化或实现特定目标的问题。强化学习的特点…

比特币叙事大转向

作者:David Lawant 编译:秦晋 要理比特币解减半动态,最关键的图表是下面这张,而不是价格图表。它显示了自 2012 年以来,矿业总收入与比特币现货交易量的比例,并标注了三个减半日期。 虽然矿工仍然是比特币生…

OpenHarmony图像解码库—stb-image [GN编译]

简介 stb_image主要是C/C实现的图像解码库。 下载安装 直接在OpenHarmony-SIG仓中搜索stb-image并下载。 使用说明 以OpenHarmony 3.1 Beta的rk3568版本为例 库代码存放路径:./third_party/stb-image 修改添加依赖的编译脚本,路径:/devel…

编程入门(五)【Visual Studio Code安装与C/C++语言运行】

读者大大们好呀!!!☀️☀️☀️ 🔥 欢迎来到我的博客 👀期待大大的关注哦❗️❗️❗️ 🚀欢迎收看我的主页文章➡️寻至善的主页 文章目录 前言VScode安装与环境配置编写第一个C语言程序总结 前言 经过了前面对计算机…

mars3d实现禁止地图移动,禁止地图左右平移,但是鼠标可以移动的效果。

new mars3d.layer.GeoJsonLayer({渲染后实现鼠标左键按住不释放拖动时,地图不跟着拖动效果 当前问题: 1.在map初始化,或者是加载效果的时候,整个地球的场景都是一样的。 如果鼠标左键按住不释放,在屏幕上拖动的时候…

怎样将Windows系统上的V2rayN通过局域网共享

比我想象得要简单,看到了这里的讨论: v2ray是否可以局域网共享? Issue #210 v2ray/v2ray-core GitHub 这个博客就简单记录一下。相信有需求的朋友不止我一个。

还在 MySQL 中使用枚举?小心有坑~

为什么使用枚举 限定值的取值范围,比如性别(男,女,未知)等。 枚举类型使用陷阱 1.超级不推荐在mysql中设置某一字段类型为enum,但是存的值为数字,比如‘0’,‘1’,‘2…

软考135-上午题-【软件工程】-软件配置管理

备注: 该部分考题内容在教材中找不到。直接背题目 一、配置数据库 配置数据库可以分为以下三类: (1) 开发库 专供开发人员使用,其中的信息可能做频繁修改,对其控制相当宽松 (2) 受控库 在生存期某一阶段工作结束时发布的阶段产…

【算法】深度优先遍历(DFS)算法详解与实现

文章目录 1.算法原理2. 常见的深度优先遍历方式3. 代码实现总结 深度优先遍历(DFS)是一种常用的树或图的遍历算法,它通过尽可能深地搜索树或图的分支,直到路径上的所有节点都被访问完毕,然后再回溯到上一层&#xff0c…

什么是云渲染?云渲染平台怎么使用?云渲染怎么收费?

什么是云渲染? 云渲染是一种利用云计算技术提供的云端服务,用户可以将本地任务递交到远程服务器上,由远程计算集群协调和完成渲染,并将结果返回本地,最后用户可以在本地下载渲染结果。 而实时云渲染则是云渲染的一种…