python24-匿名函数

课程:B站大学
记录python学习,直到学会基本的爬虫,使用python搭建接口自动化测试就算学会了,在进阶webui自动化,app自动化

匿名函数

  • 匿名函数
  • 实践是检验真理的唯一标准


匿名函数

匿名函数是指没有名字的函数,应用在需要一个函数,但是又不想费神去命名这个函数的场合。

在通常情况下,这样的函数只使用一次。

在 Python 中使用 lambda 表达式创建匿名函数。

lambda 表达式可用于任何需要函数对象的地方。
在语法上,匿名函数只能是单个表达式。
在语义上,它只是常规函数定义的语法糖。
lambda 表达式中不能使用 if、for-in、while、return 等语句, 但可以使用三目运算符
lambda 表达式
格式:

result = lambda [arg1 [, arg2, … , argn]]: expression
result:用于保存 lambda 表达式的引用
[arg1 [, arg2, … , argn]]::可选,指定要传递的参数列表,多个参数间使用英文的逗号 , 进行分隔。
expression:必选,指定一个实现具体功能的表达式。如果有参数,那么在该表达式中将应用这些参数。

示例:

def add(n1, n2):return n1 + n2result = add(1,2)
print(result)add = lambda x,y: x+y
result = add(2,3)
print(result)func = lambda x: x**2  if x > 3 else x**3
print(func(3))

使用场景
通常在这个函数只使用一次的场景下
可以指定短小的回调函数
比如,在学习列表时的 sort() 排序方法,如果是简单的基本数据类型的数据,可以直接进行排序,但如果是复杂结构的数据,需要根据自定义的规则进行排序,此时就可以使用 lambda。

示例:

# 待排序的数据
students = [{'name': 'Alice', 'id': '1001', 'class': 'Class1'},{'name': 'Eve', 'id': '1005', 'class': 'Class2'},{'name': 'Charlie', 'id': '1003', 'class': 'Class1'},{'name': 'David', 'id': '1004', 'class': 'Class2'},{'name': 'Bob', 'id': '1002', 'class': 'Class1'},{'name': 'Frank', 'id': '1006', 'class': 'Class2'}
]
# TypeError: '<' not supported between instances of 'dict' and 'dict'
# students.sort()# 以名字排序
students.sort(key=lambda stu: stu["name"])
for s in students:print(s)# 以ID降序排序
students.sort(key=lambda stu: stu["id"],reverse=True)
for s in students:print(s)
Sorted 函数实现原理students = [{'name': 'Alice', 'id': '1001', 'class': 'Class1'},{'name': 'Eve', 'id': '1005', 'class': 'Class2'},{'name': 'Charlie', 'id': '1003', 'class': 'Class1'},{'name': 'David', 'id': '1004', 'class': 'Class2'},{'name': 'Bob', 'id': '1002', 'class': 'Class1'},{'name': 'Frank', 'id': '1006', 'class': 'Class2'}
]def mySorted(obj, key=None, reverse=False):newStus = []for s in students:for n in newStus:if key:if(key(s) < key(n)):idx = newStus.index(n)newStus.insert(idx, s)breakelse:if (s < n):idx = newStus.index(n)newStus.insert(idx, s)breakelse:newStus.append(s)return newStus if reverse else newStus[::-1]# students = mySorted(students, key=lambda s: s["name"])
# students.sort(key=lambda s: s["name"])
students = [1,4,2,6,7,8,4,3,3]
students = mySorted(students, reverse=True)
print(students)
for s in students:print(s)

匿名函数好处:用于一次性处理的函数,用lambda 表达式方便运算
在这里插入图片描述

实践是检验真理的唯一标准

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

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

相关文章

Android 查看 Logcat (可纯手机方式 无需电脑)

安装 Logcat Reader Github Google Play 如果有电脑 使用其ADB方式可执行如下命令 后续无需安装Termux # 使用 ADB 授予 android.permission.READ_LOGS 权限给 Logcat Reader adb shell "pm grant com.dp.logcatapp android.permission.READ_LOGS && am force-…

驱动开发硬核特训 · Day 30(上篇):深入理解 I2C 总线驱动模型(以 at24 EEPROM 为例)

作者&#xff1a;嵌入式Jerry 视频教程请关注 B 站&#xff1a;“嵌入式Jerry” 一、写在前面 在上一阶段我们已经深入理解了字符设备驱动与设备模型之间的结合方式、sysfs 的创建方式以及平台驱动模型的实际运用。今天我们迈入总线驱动模型的世界&#xff0c;聚焦于 I2C 总线…

超详细讲解注意力机制、自注意力机制、多头注意力机制、通道注意力机制、空间注意力机制

在如今的机器学习和深度学习领域&#xff0c;注意力机制绝对是一个热度居高不下的话题。事实上&#xff0c;注意力机制并不是一个全新的概念&#xff0c;早在多年前就已经被提出并应用。比如在图像分类任务中&#xff0c;SENet 和 ECA-Net 等模型中都运用了注意力机制&#xff…

Wireshark基本使用

本文会对Wireshark做简单介绍&#xff0c;带大家熟悉一下Wireshark的界面&#xff0c;以及如何使用过滤器。 接着会带大家查看TCP五层模型下&#xff0c;带大家回顾各层首部的格式。 最后会演示 Wireshark 如何抓取三次握手和四次挥手包的过程。 目录 一.Wireshark简介 二…

加速项目落地(Trae编辑器)

目录 vscode安装python支持 vscode常用插件 Trae编辑器 两个界面合成 补充&#xff08;QT开发的繁琐&#xff09; AI编程哪家强&#xff1f;Cursor、Trae深度对比&#xff0c;超详细&#xff01; - 知乎 Trae兼容vscode的插件&#xff0c;我们可以先在vscode里面装好再一…

stable diffusion的attention-map:提取和可视化跨注意力图

项目&#xff1a; wooyeolbaek/attention-map-diffusers: &#x1f680; Cross attention map tools for huggingface/diffusers 参考&#xff1a;【可视化必备技能&#xff08;1&#xff09;】SD / Flux 文生图模型的 Attention Map 可视化-CSDN博客

多环串级PID

文章目录 为什么要多环程序主函数内环外环 双环PID调参内环Kp调法Ki调法 外环Kp 以一定速度到达指定位置封装 为什么要多环 单环只能单一控制速度或者位置&#xff0c;如果想要同时控制多个量如速度&#xff0c;位置&#xff0c;角度&#xff0c;就需要多个PID 速度环一般PI…

基于Kubernetes的Apache Pulsar云原生架构解析与集群部署指南(上)

#作者&#xff1a;闫乾苓 文章目录 概念和架构概述主要特点消息传递核心概念Pulsar 的消息模型Pulsar 的消息存储与分发Pulsar 的高级特性架构BrokerBookKeeperZooKeeper 概念和架构 概述 Pulsar 是一个多租户、高性能的服务器到服务器消息传递解决方案。Pulsar 最初由雅虎开…

电子电气架构 --- 如何有助于提安全性并减少事故

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 钝感力的“钝”,不是木讷、迟钝,而是直面困境的韧劲和耐力,是面对外界噪音的通透淡然。 生活中有两种人,一种人格外在意别人的眼光;另一种人无论…

rest_framework学习之认证 权限

权限 DRF提供如下几种常见权限&#xff1a; IsAuthenticated, 认证通过 IsAdminUser, 管理员权限 IsAuthenticatedOrReadOnly, 登录用户增删改 非登录用户只能查询 AllowAny&#xff0c;无需认证&#xff08;默认&#xff09; 在rest_framework的APIView基础类中&#xf…

【使用switch结构输出季节】2021-11-23

缘由用switch语句设计程序一年有12个月-编程语言-CSDN问答 void 使用switch结构输出季节(int y) {//缘由https://ask.csdn.net/questions/7577096?spm1005.2025.3001.5141std::cout << y << "\t";switch (y){case 3: case 4: case 5:std::cout <<…

主备Smart Link + Monitor Link组网技术详细配置

1.实验拓扑 2.使用设备 eNSP模拟建议下行设备三台使用S3700模拟&#xff08;全部使用S5700可能会出现流量丢失等异常问题。&#xff09; 3.实验配置 [SW1]dis cu # sysname SW1 # vlan batch 100 110 # interface Ethernet0/0/1port link-type accessport default vlan 100 …

【hadoop】案例:Sqoop迁移仓库数据

1 数据导出&#xff1a;Hive导入MySQL [hadoophadoop1 sqoop]$ bin/sqoop export \ > --connect jdbc:mysql://localhost/weather \ > --username root \ > --password 123456 \ > --table mean_temperature \ > --export-dir /user/hive/warehouse/mydb/mean…

Mysql-OCP PPT课程讲解并翻译

#跳过介绍&#xff0c;直接从干货开始记录 第一章 安装mysql

springboot+vue实现在线网盘(云盘)系统

今天教大家如何设计一个网盘&#xff08;云盘&#xff09;系统系统 , 基于目前主流的技术&#xff1a;前端vue&#xff0c;后端springboot。 同时还带来的项目的部署教程。 视频演示 springbootvue实现在线网盘&#xff08;云盘&#xff09;系统 图片演示 一. 系统概述 用过百…

JAVA:Spring Boot 集成 Lua 的技术博客

1、简述 在现代开发中,Lua 以其轻量级、高性能以及易嵌入的特点广泛用于脚本扩展、游戏开发以及配置处理场景。将 Lua 与 Spring Boot 集成,可以在 Java 项目中实现动态脚本功能,增强项目的灵活性和动态配置能力。 样例代码: https://gitee.com/lhdxhl/springboot-example…

uniapp-商城-43-shop 后台管理 页面

后台管理较为简单&#xff0c;主要用于后台数据的管理&#xff0c;包含商品类别和商品信息&#xff0c;其实还可以扩展到管理用户等等 1、后台首页 包含 分类管理 商品管理 关于商家等几个栏目 主要代码&#xff1a; <template><view class"manage">…

食物数据分析系统vue+flask

食物数据分析系统 项目概述 食物数据分析系统是一个集食物营养成分查询、对比分析和数据可视化于一体的Web应用。系统采用前后端分离架构&#xff0c;为用户提供食物营养信息检索、食物对比和营养分析等功能&#xff0c;帮助用户了解食物的营养成分&#xff0c;做出更健康的饮…

学习基本乐理知识

本文主要内容 如何练习吉他 乐理知识补充 ps&#xff1a;本文知识均来自up主 ‘吉他大学霸’ 感谢开源 -^- 练习吉他步骤 打怪升级 右手--> 左手--> 音阶--> 拓展 第一阶段&#xff1a; 追求手脚配合不出错、手姿势不出错、手不会按错弹错。连续不错的遍数达标就可以进…

吊球技术(劈吊、滑板等)

羽毛球吊球技术&#xff08;劈吊、滑板等&#xff09;是单打和双打中重要的得分手段&#xff0c;需要通过系统性练习掌握。以下是分步骤的详细训练方法&#xff1a; 一、核心技术原理对比 技术类型击球点拍面控制发力特点适用场景正手劈吊高点偏前斜切&#xff08;拍面45&…