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

Python学习-----lambda式匿名函数

 

目录

前言:

1.什么是lambda函数

 2.使用示例

(1)示例1:与def对比

(2)示例2:与三目运算符

(3)示例3:lambda作为参数传入其他函数

(4) 示例4:作为其他函数的值


前言:

        前面我们学习了def函数的相关用法,而今天我们来讲一个Python中很常见的一个函数---lambda函数,这个函数是怎么去使用呢?以及跟def对比起来又有那些不同呢?一起来看看吧!

 

1.什么是lambda函数

        lambda 本身是一个关键字,跟def 是一样的,同样也是可以去定义一个函数,用lambda关键字写法更加简洁明了,但是也有其不足,不能去实现定义一个复杂的函数过程,但是在很多情况下我们会去使用这个函数来实现一些简单的函数功能。

表达式lambda argument_list:expression 

说明:

lambda:是Python中预留的关键字

argument_list:是函数的参数,跟def 函数一样,参与后面的功能

expression:是函数的相关功能,其中参数是在argument_list 中定义好的,而且只有一行

 lambda的特性:

1.lambda定义的函数是匿名的,也就是说这个函数名字是没有的,其本身就是一个函数功能,但没有名字

2.lambda定义的函数是有输入和输出的,这里可以去传入数据到lambda定义的函数中,然后后面的expression中去实现先关功能,然后返回新的数据

3.lambda定义的函数功能简单,这里很容易就可以看出了,因为lambda定义的函数expression只有一行,所以一般只能实现一些简单的功能,这跟def关键字定义的函数是不一样的

 2.使用示例

(1)示例1:与def对比

#def定义函数
def fun(n):return n**2
num=int(input('enter:'))
print(fun(num))#lambda定义函数
use=lambda x:x**2
print(use(num))

        上面的lambda定义的函数功能跟def定义的是一样的,传入一个值x,然后返回x**2,但是lambda函数是有闭包的特性的,这里我可以定义一个use来获取lambda函数的功能就可以看出。

(2)示例2:与三目运算符

judge=lambda x:True if x % 2==0 else False
num=int(input('enter:'))
print(judge(num))

(3)示例3:lambda作为参数传入其他函数

import random as r
li=[x for x in range(1,20) if x%2==0]
r.shuffle(li)
print('排序前:',li)
li.sort(key=lambda x:-x**2+6*x+8)
print('排序后:',li)
#输出结果:排序前: [12, 4, 2, 16, 18, 10, 14, 8, 6]
#         排序后: [18, 16, 14, 12, 10, 8, 6, 4, 2]

这里定义的lambda函数是作为一个参数传入sort 函数中的key,让列表中的值转换为-x**2+6*x+8之后,再按照由小到大对列表中的值进行排序

import random as r
import math
li=[int(x) for x in range(1,20) if x%2!=0]
r.shuffle(li)
print(li)
new_li=map(lambda x:round(math.sin(x),2),li)#通过Python中内置round函数实现保留两位小数
print(list(new_li))
#输出结果:[15, 9, 19, 3, 11, 13, 5, 17, 7, 1]
#         [-0.96, 0.14, 0.65, 0.42, 0.15, -0.96, 0.84, 0.41, -1.0, 0.66]

 这里是将lambda定义的函数作为map()函数的参数,然后把列表中的数据依次作为参数传入lambda定义的函数,实现相关功能,最后返回一个新的map类型,我们进行list转换就可以以列表的形式输出这个返回值

(4) 示例4:作为其他函数的值

import time as t
t.sleep=lambda x:None
t.sleep(3)
print('hello!')

        在正常情况下,控制板会等待3秒然后才输出hello!,但是我通过了lambda函数赋值给sleep函数,所以此时的t.slep函数分功能就是lambda定义的函数功能,也就是说sleep已经失去了停机的功能了,所以就不会延迟3秒再输出结果。

好了,这一期就到这里了,谢谢各位~~

分享一张壁纸

 

相关文章:

Python学习-----lambda式匿名函数

目录 前言: 1.什么是lambda函数 2.使用示例 (1)示例1:与def对比 (2)示例2:与三目运算符 (3)示例3:lambda作为参数传入其他函数 (4&#xff…...

华为OD机试真题Python实现【求解连续数列】真题+解题思路+代码(20222023)

求解连续数列 题目 已知连续正整数数列{K}=K1,K2,K3… Ki的各个数相加之和为S, i = N (0 < S < 100000, 0 < N < 100000), 求此数列K。 🔥🔥🔥🔥🔥👉👉👉👉👉👉 华为OD机试(Python)真题目录汇总 ## 输入 输入包含两个参数 连续正整数数…...

每日学术速递2.22

CV - 计算机视觉 | ML - 机器学习 | RL - 强化学习 | NLP 自然语言处理 Subjects: cs.CV 1.PriSTI: A Conditional Diffusion Framework for Spatiotemporal Imputation 标题&#xff1a;PriSTI&#xff1a;时空插补的条件扩散框架 作者&#xff1a;Mingzhe Liu, Han Huan…...

postgresql 数据库 主从切换 测试

postgresql 数据库 主从切换 测试 文章目录postgresql 数据库 主从切换 测试前言环境&#xff1a;主从切换1. 查看数据库状态&#xff1a;2. 备库切换主库3. 旧主库切换成备库&#xff1b;4 查看状态后记前言 因数据库等保需要&#xff0c;需要对老系统的数据库进行主从切换来…...

干旱预测方法总结及基于人工神经网络的干旱预测案例分析(MATLAB全代码)

本案例采用SPEI干旱指数&#xff0c;构建ANN和BP神经网络预测模型&#xff0c;并开展1~3个月预见期的干旱预测&#xff0c;对比分析干旱预测模型的适用性&#xff0c;为流域干旱预警和管理提供技术依据。 干旱预测 1 干旱预测方法 1.1 统计学干旱预测 根据历史降水或气温等…...

一篇文章弄清楚啥是数组和集合

数组和集合多语言都有&#xff0c;数组是集合的一种&#xff0c;是一种有序的集合&#xff0c;不面向对象&#xff0c;面向过程的也有。1.数组逻辑结构&#xff1a;线性的物理结构&#xff1a;顺序的存储结构申请内存&#xff1a;一次申请一大段连续的空间&#xff0c;一旦申请…...

计算机网络(五):三次握手和四次挥手,TCP,UDP,TIME-WAIT,CLOSE-WAIT,拥塞避免,

文章目录零. TCP和UDP的区别以及TCP详解TCP是如何保证可靠性的TCP超时重传的原理TCP最大连接数限制TCP流量控制和拥塞控制流量控制拥塞控制TCP粘包问题一、三次握手和四次挥手二、为什么要进行三次握手&#xff1f;两次握手可以吗&#xff1f;三、为什么要进行四次挥手&#xf…...

【数据结构】二叉树(C语言实现)

文章目录一、树的概念及结构1.树的概念2.树的相关概念名词3.树的表示4.树在实际中的运用二、二叉树概念及结构1.二叉树的概念2.特殊的二叉树3.二叉树的性质4.二叉树的存储结构三、二叉树链式结构的实现1.结构的定义2.构建二叉树3.二叉树前序遍历4.二叉树中序遍历5.二叉树后序遍…...

高级信息系统项目管理(高项 软考)原创论文——成本管理(2)

1、如果您想了解如何高分通过高级信息系统项目管理师(高项)你可以点击链接: 高级信息系统项目管理师(高项)高分通过经验分享_高项经验 2、如果您想了解更多的高级信息系统项目管理(高项 软考)原创论文,您可以点击链接:...

代码签名即将迎来一波新关注

在数字化高度发展的当下&#xff0c;个人隐私及信息安全保护已经成了大家关注的重点&#xff0c;包括日常使用的电脑软件&#xff0c;手机APP等&#xff0c;由于包含了大量的用户信息&#xff0c;已经成了重点关注对象&#xff0c;任何一个疏忽就可能泄露大量用户信息。所以权威…...

黑盒渗透盲打lampiao

一、查找主机ip&#xff0c;通过Nmap扫描工具排查出我的靶机的IP 为.134 python tools.py ip -i 192.168.12.0 -h 254 -l 1 二、扫描其他端口。 1898 三、查看网站漏洞情况&#xff0c;典型的漏洞特征 Ac扫描漏洞情况&#xff0c;利用典型的漏洞。 四、开始getshell 1、启动M…...

笔记:VLAN及交换机处理详细教程(Tagged, UnTagged and Native VLANS Tutorial)

一、内容来源 本文是对下面这篇文章的总结&#xff0c;写的很全、很细致、干货满满&#xff0c;强力推荐&#xff1a; 《Tagged, UnTagged and Native VLANS Tutorial – A Quick Guide about What they Are?》 二、为什么引入VLAN&#xff1f; 早期设备间通过集线器&#x…...

在字节跳动,造赛博古籍

“你在字节跳动哪个业务&#xff1f;”“古籍数字化。把《论语》《左传》《道德经》这些古籍变成电子版&#xff0c;让大家都能免费看。”没错&#xff0c;除了你熟悉的那些 App&#xff0c;字节跳动还在做一些小众而特别的事情&#xff0c;古籍数字化就是其中之一。在字节跳动…...

Android 12.0设置默认Launcher安装一款Launcher默认Launcher无效的解决方案

1.概述 在12.0的系统rom定制化过程中,在系统中当有多个Launcher的时候,这时候会要求设置默认Launcher,但是在最近的产品开发过程中,发现在设置完默认Launcher以后,在安装个Launcher的时候,会让原来设置的默认Launcher变为空了,就是在系统Settings中的默认应用中,launche…...

数据结构第16周 :( 希尔排序+ 堆排序 + 快速排序 )

目录希尔排序堆排序快速排序希尔排序 【问题描述】给出一组数据&#xff0c;请用希尔排序将其按照从小到大的顺序排列好。 【输入形式】原始数据&#xff0c;以0作为输入的结束&#xff1b;第二行是增量的值&#xff0c;都只有3个。 【输出形式】每一趟增量排序后的结果 【…...

【C++】类和对象

1.面向过程和面向对象初步认识 我们知道&#xff0c;C语言是面向过程的&#xff0c;关注的就是问题解决的过程&#xff1b; C是面向过程和面向对象混编&#xff0c;因为C兼容了C语言&#xff0c;而面向对象关注的不再是问题解决的过程&#xff1b; 而是一件事情所关联的不同…...

Java缓存面试题——Redis应用

文章目录1、为什么要使用Redis做缓存&#xff1f;2、为什么Redis单线程模型效率也能那么高&#xff1f;3、Redis6.0为什么要引入多线程呢&#xff1f;4、Redis常见数据结构以及使用场景字符串&#xff08;String&#xff09;哈希(Hash)列表&#xff08;list&#xff09;集合&am…...

KMP算法详细理解

一、目的1.KMP应用场景&#xff1a;可以解决字符串匹配问题&#xff1b; 在一个串中查找是否出现过另一个串。2.KMP的经典思想就是:当出现字符串不匹配时&#xff0c;可以记录一部分之前已经匹配的文本内容&#xff0c;利用这些信息避免从头再去做匹配。3.KMP算法关键在于&…...

RabbitMQ单节点安装

在学习RabbitMQ之前&#xff0c;必须要把RabbitMQ的环境搭建起来&#xff0c;刚开始学习时&#xff0c;搭建单节点是入门RabbitMQ最方便、最快捷的方式&#xff0c;这篇文章就是介绍如何使用RabbitMQ压缩包的方式搭建一个单节点的RabbitMQ。 在实际项目中&#xff0c;服务器都…...

tomcat 服务的目录结构和tomcat的运行模式

目录 一、tomcat 服务的目录结构解析&#xff1a; 1、tomcat目录结构&#xff1a; bin目录&#xff1a; conf目录&#xff1a; lib目录&#xff1a; logs目录&#xff1a; temp目录&#xff1a; webapps目录&#xff1a; wokr目录&#xff1a; 二、tomcat服务的运行模…...

Ubuntu系统下交叉编译openssl

一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机&#xff1a;Ubuntu 20.04.6 LTSHost&#xff1a;ARM32位交叉编译器&#xff1a;arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...

Prompt Tuning、P-Tuning、Prefix Tuning的区别

一、Prompt Tuning、P-Tuning、Prefix Tuning的区别 1. Prompt Tuning(提示调优) 核心思想:固定预训练模型参数,仅学习额外的连续提示向量(通常是嵌入层的一部分)。实现方式:在输入文本前添加可训练的连续向量(软提示),模型只更新这些提示参数。优势:参数量少(仅提…...

R语言AI模型部署方案:精准离线运行详解

R语言AI模型部署方案:精准离线运行详解 一、项目概述 本文将构建一个完整的R语言AI部署解决方案,实现鸢尾花分类模型的训练、保存、离线部署和预测功能。核心特点: 100%离线运行能力自包含环境依赖生产级错误处理跨平台兼容性模型版本管理# 文件结构说明 Iris_AI_Deployme…...

【Linux】C语言执行shell指令

在C语言中执行Shell指令 在C语言中&#xff0c;有几种方法可以执行Shell指令&#xff1a; 1. 使用system()函数 这是最简单的方法&#xff0c;包含在stdlib.h头文件中&#xff1a; #include <stdlib.h>int main() {system("ls -l"); // 执行ls -l命令retu…...

2021-03-15 iview一些问题

1.iview 在使用tree组件时&#xff0c;发现没有set类的方法&#xff0c;只有get&#xff0c;那么要改变tree值&#xff0c;只能遍历treeData&#xff0c;递归修改treeData的checked&#xff0c;发现无法更改&#xff0c;原因在于check模式下&#xff0c;子元素的勾选状态跟父节…...

土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等

&#x1f50d; 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术&#xff0c;可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势&#xff0c;还能有效评价重大生态工程…...

HTML前端开发:JavaScript 常用事件详解

作为前端开发的核心&#xff0c;JavaScript 事件是用户与网页交互的基础。以下是常见事件的详细说明和用法示例&#xff1a; 1. onclick - 点击事件 当元素被单击时触发&#xff08;左键点击&#xff09; button.onclick function() {alert("按钮被点击了&#xff01;&…...

MySQL用户和授权

开放MySQL白名单 可以通过iptables-save命令确认对应客户端ip是否可以访问MySQL服务&#xff1a; test: # iptables-save | grep 3306 -A mp_srv_whitelist -s 172.16.14.102/32 -p tcp -m tcp --dport 3306 -j ACCEPT -A mp_srv_whitelist -s 172.16.4.16/32 -p tcp -m tcp -…...

CSS设置元素的宽度根据其内容自动调整

width: fit-content 是 CSS 中的一个属性值&#xff0c;用于设置元素的宽度根据其内容自动调整&#xff0c;确保宽度刚好容纳内容而不会超出。 效果对比 默认情况&#xff08;width: auto&#xff09;&#xff1a; 块级元素&#xff08;如 <div>&#xff09;会占满父容器…...

动态 Web 开发技术入门篇

一、HTTP 协议核心 1.1 HTTP 基础 协议全称 &#xff1a;HyperText Transfer Protocol&#xff08;超文本传输协议&#xff09; 默认端口 &#xff1a;HTTP 使用 80 端口&#xff0c;HTTPS 使用 443 端口。 请求方法 &#xff1a; GET &#xff1a;用于获取资源&#xff0c;…...