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 ** 2

map(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 == 1
 
odd_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 reduce

def add(x, y) :
    return x + y

sum = reduce(add, [1,2,3,4,5])
print(sum)  # 输出:15

等价于:

from functools import reduce

sum = 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.mfbz.cn/a/558347.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【NTN 卫星通信】NTN的信关站应该建在哪些地方

1 概述 3GPP的卫星通信讨论了透传星和再生星两种方式。透传星方式,卫星主要是做为中继存在,基本上不做通信协议的处理。再生星方式,gNodeB的主要功能在卫星上,完成通信协议的主要内容。无论是透传星还是再生星,都需要通…

校园小情书微信小程序源码/社区小程序前后端开源/校园表白墙交友小程序

校园小情书前端代码,好玩的表白墙、树洞、校园论坛,可独立部署,也可以使用我部署的后台服务,毕业设计的好项目。 搭建教程: 一、注册管理后台 1、登录小情书站点进行注册:https://你的域名 2、注册成功…

【JavaEE多线程】线程中断 interrupt()

系列文章目录 🌈座右铭🌈:人的一生这么长、你凭什么用短短的几年去衡量自己的一生! 💕个人主页:清灵白羽 漾情天殇_计算机底层原理,深度解析C,自顶向下看Java-CSDN博客 ❤️相关文章❤️:清灵白羽 漾情天…

动态酷黑主页源码

效果图 PC端 &#xff08;移动端不能访问&#xff09; 部分代码 index.html <!DOCTYPE html> <html lang"zh-CN"> <head> <meta http-equiv"X-UA-Compatible" content"IEedge,chrome1"> <meta charset"ut…

java算法day58 | 单调栈part01 ● 739. 每日温度 ● 496.下一个更大元素 I

739. 每日温度 思路&#xff1a; 这道题用暴力求解法会超时。 那我们就要想如何只遍历一遍就能求解出每个位置的下一个更大值在哪呢。 主要的思想就是空间换时间。定义一个单调栈&#xff0c;每次遇到比栈顶元素小的或相等的&#xff0c;直接入栈&#xff0c;遇到比栈顶元素大的…

电学启蒙积木电子方案

东莞市酷得智能科技有限公司是一家集芯片贸易和电子方案定制开发的研发型公司&#xff0c;其中电子积木方案是酷得经营多年的其中一条比较成熟的研发线。电学积木玩具不仅仅是一种娱乐工具&#xff0c;更是一种教育工具&#xff0c;能够在孩子们的成长过程中发挥多方面的积极作…

微信小程序开发五(与springboot整合)

首先在微信开发者工具中开启不校验合法域名&#xff0c;这个才能本地访问 实现一个小功能&#xff1a; 展示数据信息&#xff0c;每条数据的颜色不一样 后端&#xff1a;springbootmybatisplusmysql 依赖&#xff1a; <dependency><groupId>com.baomidou</grou…

代码学习记录45---单调栈

随想录日记part45 t i m e &#xff1a; time&#xff1a; time&#xff1a; 2024.04.17 主要内容&#xff1a;今天开始要学习单调栈的相关知识了&#xff0c;今天的内容主要涉及&#xff1a;每日温度 &#xff1b;下一个更大元素 I 739. 每日温度 496.下一个更大元素 I Topic…

powershell@命令行提示符样式配置自定义@pwsh重写prompt显示电量内存时间等信息

文章目录 abstract流行的powershell prompt模块示例 powershell原生修改Prompt函数配置文档Prompt命令来自哪里 简单修改带上电量和时间的Prompt 复杂修改预览FAQ:没有必要修改相关仓库地址样式选择平衡样式花哨样式响应性能 小结 abstract 在 PowerShell 中&#xff0c;可以通…

国家级项目管理高级认证:CSPM-4级(高级)重磅推出

本周&#xff0c;圣略CSPM资深讲师老杨&#xff0c;赴北京参加CSPM-4级高级讲师培训&#xff0c;从现场带来第1手的资料&#xff0c;与大家分享&#xff1a; CSPM-4基本要求&#xff1a; 负责实现组织战略目标&#xff0c;以成果和收益为导向&#xff0c;需具备战略解析、收益…

汇编语言学习笔记

1、NOP指令&#xff1a;号称最安全的指令&#xff0c;全名为no Operation&#xff0c;一条nop指令占用一个字节&#xff0c;什么也不做。有时编译器会使用该指令将代码对齐到偶数地址边界&#xff08;类似于内存对齐&#xff09;。IA-32处理器从偶数双字地址处加载代码和数据时…

【简单介绍下Beego框架】

&#x1f3a5;博主&#xff1a;程序员不想YY啊 &#x1f4ab;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f917;点赞&#x1f388;收藏⭐再看&#x1f4ab;养成习惯 ✨希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出…

等保合规:保护企业网络安全的必要性与优势

前言 无论是多部网络安全法律法规的出台&#xff0c;还是最近的“滴滴被安全审查”事件&#xff0c;我们听得最多的一个词&#xff0c;就是“等保。” 只要你接触安全类工作&#xff0c;听得最多的一个词&#xff0c;一定是“等保。” 那么&#xff0c;到底什么是“等保”呢…

c++初阶——类和对象(上)

大家好我是小锋今天我们来学习类和对象 面向过程和面向对象初步认识 C语言是面向过程的&#xff0c;关注的是过程&#xff0c;分析出求解问题的步骤&#xff0c;通过函数调用逐步解决问题。 C是基于面向对象的&#xff0c;关注的是对象&#xff0c;将一件事情拆分成不同的对…

NASM中的-f选项

2024年4月19日&#xff0c;周五下午 -f选项 在 NASM 中&#xff0c;-f 选项用于指定输出格式或目标文件格式。这个选项允许你告诉 NASM 将汇编代码编译成特定格式的目标文件&#xff0c;以便与特定的操作系统或环境兼容。下面是 -f 选项的一些常见用法和参数&#xff1a; -f …

✌粤嵌—2024/4/11—合并区间✌

代码实现&#xff1a; /*** Return an array of arrays of size *returnSize.* The sizes of the arrays are returned as *returnColumnSizes array.* Note: Both returned array and *columnSizes array must be malloced, assume caller calls free().*/// 交换 void swap(i…

“开关是灯的日出日落,日出日落是灯的开关”

C语言刷题 day01 本篇是C语言刷题大杂烩&#xff0c;收集了笔者遇到的认为有价值的题目&#xff0c;本篇会持续更新~~ day01 至少是其他数字两倍的最大数 题目原文&#xff1a; 题意解析&#xff1a; 请你找出数组中的最大元素并检查它是否 至少是数组中每个其他数字的两倍 …

【汇智知了堂来袭】西华师范大学鸿蒙专题讲座,共探HarmonyOS新机遇!

在这个信息化的时代&#xff0c;我们身处一个日新月异、科技飞速发展的世界。随着信创国产化的步伐加快&#xff0c;万物互联的大时代已经悄然开启。作为科技前沿的探索者&#xff0c;汇智知了堂始终站在行业的前沿&#xff0c;紧跟时代的发展脉搏。我们在4月9日走进西华师范大…

5. Django 探究CBV视图

5. 探究CBV视图 Web开发是一项无聊而且单调的工作, 特别是在视图功能编写方面更为显著. 为了减少这种痛苦, Django植入了视图类这一功能, 该功能封装了视图开发常用的代码, 无须编写大量代码即可快速完成数据视图的开发, 这种以类的形式实现响应与请求处理称为CBV(Class Base…

第一届AI Agent智能体现场开发大赛报名开启!8月上旬火热开赛~

由联想拯救者、AIGC开放社区、英特尔携手主办的“AI生成未来第二届拯救者杯OPENAIGC开发者大赛”已经正式启动&#xff0c;“2024 AI Agent极限挑战赛”作为特设专项赛道&#xff0c;也将同步于8月上旬开赛&#xff0c;参赛者将在更加紧张刺激的现场比赛中展现其技术与创造力。…