Python中lambda的使用,与它的三个好基友介绍!

Python lambda函数 Lambda函数,也称为匿名函数,是一种不需要显式命名的小型函数。它通常用于定义简单的功能,可以接受任意数量的参数,但只能包含单个表达式。其中,参数(arguments)是输入到Lambda函数的变量,表达式(expression)是函数的主体部分,用于执行操作并返回结果。匿名性:Lambda函数没有显式的函数名。简洁性:Lambda函数通常非常简洁,适用于小型操作。快速定义:Lambda函数可以在需要时即时定义,无需提前声明。 阅读详情
关于python入门

很多朋友说,python入门有推荐的书吗?其实遇到这种问题,会比较难回答,因为如果一心想学python,现在网络那么发达,怎么都能找到资料学。当然你要真让我推荐一本书,我还是想说《python学习手册第四版》,这本书乍一看突出一个厚字,但内容讲的是真的很细致!如果你不知道python学哪本书,还是推荐你看看它。大家可以从我公众号底部的领取福利中,找到这本书。即便你已不是python小白,回过头看看这本书也能有很多收获。这几天在处理项目python自动化升级的工作,其中涉及到大量数据的格式化、类型变更与过滤。所以,今天跟大家讲讲关于python中几个精致的函数

匿名函数lambda

除了def语句,python还提供了一种生成函数对象的表达式形式。由于它与LISP语言中的一个工具类似,所以称为lambda。
就像def一样,这个表达式创建了一个之后能够调用的函数,但是它返回一个函数而不是将这个函数赋值给一个塔变量。这些就是lambda叫做匿名函数的原因。实际上,他常常以一种行内进行函数定义的方式使用,或者用作推迟执行一些代码。
lanbda的一般形式是关键字lambda,之后是一个或多个参数(与一个def头部内用括号括起来的参数列表类似),紧跟着是一个冒号,之后是表达式

lambda arg1,arg2,argn:expression using arguments

由lambda表达式所返回的函数对象与由def创建并复制后的函数对象工作起来是完全一致的,但lambda有一些不同之处,让其扮演特定的角色时更有用:

lambda是一个表达式,而不是一个语句

因为这一点,lambda可以出现在python语法不允许def出现的地方:
eg:一个的表敞亮中或者函数调用的参数中.
此外,作为一个表达式,lambda返回一个值(一个新的函数),可以选择性的赋值给一个变量
相反,def语句总是得在头部将一个新的函数赋值给一个变量,而不是将这个函数作为结果返回。

lambda的主题是单个表达式,而不是一个代码块

这个lambda的主题简单的就好像凡在def主体return语句中的代码一样。
简单的将结果写成一个顺畅的表达式,而不是明确的返回。
但由于它仅限于表达式,故lambda通常要比def功能少...你仅能够在lambda主体中封装有限的逻辑进去,因为他是一个为编写简单函数而设计的。
除了上述这些差别,def和lambda都能过做同样种类的工作

def与lambda的相同用法
x = lambda x, y, z: x + y + z
x(2, 3, 4)
>>> 9

y = (lambda a='hello', b='world': a + b)
y(b='清风')
>>> 'hello清风'
为什么使用lambda

看过上面的两个小例子,很多人会说这个和def没什么差别,我们又为什么要使用lambda呢?通常来说,lambda起到一种函数的速写作用,允许在使用的代码内嵌一个函数的定义,他完全是可选的(是可以使用def代替他们),但是在你仅需要切入一段可执行代码的情况下,它会带来一个更简洁的书写效果。

lambda通常用来编写跳转表,也就是行为的列表或者字典,能够按照需求执行操作,比如:

l = [lambda x: x ** 2, lambda x: x ** 3, lambda x: x ** 4]

for f in l:
    print(f(2))
>>> 4
>>> 8
>>> 16
print(l[0](3))
>>> 9

当需要吧小段的可执行代码编写进def语句从语法上不能实现的地方是,lambda表达式作为def的一种速写来说,是最为有用的,如果上面的代码用def编写,则变为:

def f1(x):
    return x ** 2

def f2(x):
    return x ** 3

def f3(x):
    return x ** 4

l = [f1, f2, f3]

for f in l:
    print(f(2))
print(l[0](3))

实际上,我们可以用python中的字典或者其他的数据结构来构建更多种类的行为表,从而做同样的事情。

lambda中实现if-else

Python中具备的单行表达式: if a:b else c语法在lambda中同样适用:

lower = lambda x,y:x if x<y else y
lower(4,5)
>>> 4

看了半天,大家可能也并未觉得lambda在python中到底比def优越与便利在哪里,那么说到lambda,就必须要提及三个函数map、filter、reduce,当你接触了这三个函数,那么你才能感受到lambda真实的方便之处

map 函数

程序对列表或者其他序列常常要做的一件事就是对每个元素进行一个操作,并把其结果集合起来。
python提供了一个工具map,它会对一个序列对象中的每一个元素英语被传输的函数,并返回一个包含了所有函数调用结果的列表。
举个栗子,我们有一个列表,需要将列表的每一个字段+10,我们该如何操作?

list_show = [1, 2, 3, 4]
# 方式1
new_list_show = []
for i in list_show:
    new_list_show.append(i + 10)

print(new_list_show)

# 方式2
def adds(x):
    return x + 10

print(list(map(adds, list_show)))

# 更优雅的方式3:
print(list(map(lambda x: x + 10, list_show)))

看看上面三个实现方式,你觉得那种更加Pythonic?
eg:需要注意一点,map在python3中是一个可迭代对象,引入需要使用列表调用来破事他生成所有的结果用于显示,python2不必如此。
当然map的阐述函数,不仅仅支持自己编写的,同样也支持python自带的多种函数,比如:

list_show = [1, -2, 3, -4, 5, -6]
print(list(map(abs, list_show)))
>>> [1, 2, 3, 4, 5, 6]
filter函数

filter通过字面意思,大家就知道它的用处了,用于数据的过滤操作,它也是lambda的一个好基友,举个栗子。
我们需要过滤0-9中,能被2整除的数字组成一个列表,我们该如何操作?只需要一行代码:

print(list(filter(lambda x: x % 2 == 0, range(10))))
>>> [0, 2, 4, 6, 8]

没错,filter就是这么的简单实用....

reduce的妙用

reduce在python2中是一个简单的函数,但在python3中它责备收录与functools中。
它接收一个迭代器来处理并返回一个单个的结果。

list_show = [1, 2, 3, 4]
print(reduce(lambda x, y: x + y, list_show))
>>> 10
print(reduce(lambda x, y: x * y, list_show))
>>> 24

lambda的实用与它的好基友就介绍到这里,希望对大家有所帮助。

The End

OK,今天的内容就到这里,如果觉得内容对你有所帮助,欢迎点击文章右下角的“在看”。
期待你关注我的公众号清风Python,如果觉得不错,希望能动动手指转发给你身边的朋友们。
希望每周一至五清晨的7点10分,都能让清风Python的知识文章叫醒大家!谢谢……

5847426-612ae1f58118218c.png
清风Python

Python3匿名函数lambda介绍与使用示例 主要给大家介绍了关于Python3匿名函数lambda与使用的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Python3具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧 立即下载

相关推荐

Spring AI实现RAG(检索增强生成)详解与实践

支持多种文件格式的文档加载实现高效的向量存储和检索构建智能的问答系统提供可追溯的知识服务RAG技术为AI应用提供了强大的知识增强能力,使得模型能够基于实际文档生成准确、可靠的回答。

beiduofen2011的专栏 1238

Python3中lambda表达式介绍

Python3中的lambda表达式或lambda函数是匿名函数(anonymous function),意味着该函数没有名称。def关键字用于在Python3中创建一个普通函数,类似地,lambda关键字用于在Python3中创建匿名函数。 Python3 lambda函数语法: lambda parameters: expression 未命名对象的行为类似于定义了以下内容的函数对象: def <lambda>(parameters): retur...

网络资源是无限的 1816

RACECAR底层平台安装:Jetson Nano+ROS Melodic全栈部署指南

移动机器人开发中,底层平台安装是将硬件转化为可编程移动平台的关键起点。其核心在于嵌入式系统、ROS中间件与传感器驱动的深度协同——需兼顾内核模块加载、GPIO/PWM精确控制、I2C设备初始化及ROS工作空间构建等多层技术耦合。尤其在竞速级小车如RACECAR场景下,Jetson Nano的硬件加速能力、MPU6050 IMU固件加载、TB6612FNG电机驱动配置等细节,直接决定运动控制精度与实时性。本文聚焦Ubuntu 18.04 + ROS Melodic + JetPack 4.4.1技术栈,覆盖从

weixin_32025789的博客 256

Python 3中的lambda函数使用

Define: 匿名函数lambda函数:指一类无需定义标识符(函数名)的函数或子程序。所谓匿名函数,通俗地说就是没有名字的函数,lambda函数没有名字,是一种简单的、在同一行中定义函数的方法。 Feature: 功能简单:lambda函数一般功能简单:单行expression决定了lambda函数不可能完成复杂的逻辑,只能完成非常简单的功能。由于其实现的功能一目了然,甚至不需要专门的名字来说明。 参数不受限:lambda 函数可以接收任意多个参数 (包括可选参数) 并且返回单个表达式的值。 .

xjcoolice的博客 2861

gesp c++ 五级知识点

gesp c++ 五级知识点

MMD.然大大 2009

PID算法(位置式pid算法和增量式pid算法)

PID 算法是闭环控制系统中常用的算法,PID 分别是 Proportion(比例)、Integral(积分)、Differential(微分)的首字母缩写。它是一种结合比例、积分和微分三个环节于一体的闭环控。

m0_57678852的博客 2万+

Python3(17) Lambda 函数

Python 的 lambda 函数作为一种简洁高效的编程工具,在数据处理、函数式编程等方面发挥着重要作用。通过掌握 lambda 函数的定义和常见应用场景,能够更加灵活地编写 Python 代码,提高编程效率。在实际应用中,要合理运用 lambda 函数,充分发挥其优势,同时注意其局限性,确保代码的可读性和可维护性。希望这篇博客能帮助你更好地复习和巩固 lambda 函数的知识,在编程中熟练运用它解决各种问题。

Theodore_1022的博客 1298

TMC22系列步进电机驱动设计:从静音原理到硬件实战

步进电机驱动是运动控制系统的核心,其性能直接影响设备的精度、噪音和效率。传统驱动方案如A4988采用方波控制,存在转矩脉动大、运行噪音高等问题。而高性能驱动通过优化电流波形与切换策略,从根本上提升了运动质量。其中,**StealthChop2**技术通过同步MOSFET开关与电机反电动势过零点,实现了近乎无声的低速运行;**SpreadCycle**模式则通过逼近正弦波的电流调节,优化了中高速动态性能。这些技术为3D打印机、CNC机床、自动化设备等对静音和精度有要求的场景提供了关键解决方案。本文以广泛应用的

weixin_31858171的博客 353

Python3_lambda、sorted、filter、map、递归、二分法

知识点 1、lambda 匿名函数 2、sorted()函数 3、filter()函数 4、map()映射函数 5、递归 6、二分法 1、lambda匿名函数 语法:lambda 参数: 函数体 注意:1、函数的参数可以有多个,多个参数之间用逗号隔开 2、匿名函数不管多复杂,只能写一行,其逻辑结束后直接返回数据 3、返回值和正常的函数一样,可以是任意数据类型 # 一般函数 def func(n):...

flinjin的博客 344

二叉树的操作之统计二叉树中节点的个数

一,问题描述 给定一颗二叉树,已知其根结点。 ①计算二叉树所有结点的个数 ②计算二叉树中叶子结点的个数 ③计算二叉树中满节点(度为2)的个数   二,算法分析 找出各个问题的基准条件,然后采用递归的方式实现。 ①计算二叉树所有结点的个数 1)当树为空时,结点个数为0,否则为根节点个数 加上 根的左子树中节点个数 再加上 根的右子树中节点的个数 借助遍历二叉树的思路,每访问一个结...

weixin_34200628的博客 4568

预处理详解(三)—— 命令行定义 + 条件编译 + 文件包含

文章目录前言 前言

2021dragon的博客 2187

python3 lambda函数

我们可以看到key定义了一个lambda函数,从字典中提取分数,并对分数执行降序操作。X=[4,6,2,1,7,9] y=x [:] y.sort () print (y) # [1,2,4,6,7,9] print (x) # [4,6,2,1,7,9]方式。通过对比,我们发现前者改变的是原始数组,而后者改变的是原始数据。1.排序改变原始序列,但排序不改变原始序列的顺序。使用key时,必须提供一个排序过程总是调用的函数。打印(y) #[1,2,4,6,7,9]打印(x)#[4,6,2,1,7,9]

fmz2222的博客 524

自动驾驶模拟器:基于 Python + Carla,在家也能训练一个“L4 级”自动驾驶 AI 模型

市面上有很多模拟器(AirSim, LGSVL),但 Carla 是目前学术界和工业界最主流的选择。画质强:基于 UE4,光影、天气(下雨、夕阳)极其逼真,这对训练视觉模型至关重要。API 爽:完全使用 Python 控制,对 AI 工程师极度友好。资产多:内置各种车辆、行人、交通信号灯、城市地图。编写 Python 代码,让车自己在城市里跑,通过摄像头看到路况,自己决定怎么打方向盘。通过 Carla,我们把价值数百万的自动驾驶测试场搬进了电脑。

BUG猿的博客 269

lambda函数if_Python中lambda的使用,与它的三个好基友介绍!

匿名函数lambda除了def语句,python还提供了一种生成函数对象的表达式形式。由于它与LISP语言中的一个工具类似,所以称为lambda。就像def一样,这个表达式创建了一个之后能够调用的函数,但是它返回一个函数而不是将这个函数赋值给一个变量。这些就是lambda叫做匿名函数的原因。实际上,他常常以一种行内进行函数定义的方式使用,或者用作推迟执行一些代码。lambda的一般形式是关键字la...

weixin_39981681的博客 513

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

def python语言对照表_Python中lambda的使用,与它的三个好基友介绍!

匿名函数lambda除了def语句,python还提供了一种生成函数对象的表达式形式。由于它与LISP语言中的一个工具类似,所以称为lambda。就像def一样,这个表达式创建了一个之后能够调用的函数,但是它返回一个函数而不是将这个函数赋值给一个变量。这些就是lambda叫做匿名函数的原因。实际上,他常常以一种行内进行函数定义的方式使用,或者用作推迟执行一些代码。lambda的一般形式是关键字la...

weixin_40002238的博客 112

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

lambda函数if_Python中lambda的使用,与它的三个好基友介绍

匿名函数lambda除了def语句,python还提供了一种生成函数对象的表达式形式。由于它与LISP语言中的一个工具类似,所以称为lambda。就像def一样,这个表达式创建了一个之后能够调用的函数,但是它返回一个函数而不是将这个函数赋值给一个变量。这些就是lambda叫做匿名函数的原因。实际上,他常常以一种行内进行函数定义的方式使用,或者用作推迟执行一些代码。lambda的一般形式是关键字la...

weixin_39737368的博客 135

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

def python语言对照表_Python中lambda的使用,与它的三个好基友介绍

匿名函数lambda除了def语句,python还提供了一种生成函数对象的表达式形式。由于它与LISP语言中的一个工具类似,所以称为lambda。就像def一样,这个表达式创建了一个之后能够调用的函数,但是它返回一个函数而不是将这个函数赋值给一个变量。这些就是lambda叫做匿名函数的原因。实际上,他常常以一种行内进行函数定义的方式使用,或者用作推迟执行一些代码。lambda的一般形式是关键字la...

weixin_42420422的博客 121

在Python中使用Lambda函数的5种用法

欢迎关注“小白玩转Python”,发现更多 “有趣”引言Lambda 函数(也称为匿名函数)是函数式编程中的核心概念之一。支持多编程范例的 Python 也提供了一种简单的方法来定义 l...

Warmer_Sweeter 2万+

Python Lambda函数的几种使用方法

文章转自:https://mp.weixin.qq.com/s/-jW8ODLsUgfoWdx9ZFW3LQ 在进行编程时,一般我们会给一个函数或者变量起一个名字,该名称是用于引用或寻址函数变量。但是有一个低调的函数,你不需要赋予它名字,因此该函数也叫匿名函数。该函数就是Python中的Lambda函数,下面就来为大家解析lambda函数的基本使用方法。 为什么要使用Python Lambda...

谷穗的博客 5466

python lambda函数计算三次幂_python lambda函数及三个常用的高阶函数

进行编程时,一般我们会给一个函数或者变量起一个名字,该名称是用于引用或寻址函数变量。但是有一个低调的函数,你不需要赋予它名字,因此该函数也叫匿名函数。该函数就是Python中的Lambda函数,下面就来为大家解析python—lambda函数,三个常用的高阶函数。为什么要使用Python Lambda函数?匿名函数可以在程序中任何需要的地方使用,但是这个函数只能使用一次,即一次性的。因此Pytho...

weixin_39636691的博客 842

Python的Lambda函数详解及使用

与其他的使用常规 def 关键字创建的函数不同,lambda 函数没有名字,这也是为什么有时它们被称为匿名函数的原因。对 lambda 函数命名的唯一作用可能是出于教学目的,以表明 lambda 函数的确是和其他函数一样的函数——可以被调用并且具有某种功能。lambda 函数最常见的使用场景是将它作为一些内置工具函数中 key 的实参,比如上面展示的 sorted() 和 max()。与此相关,如果您想多次使用 lambda 函数,最佳实践是使用通过 def 定义的允许使用文档字符串的常规函数。

huanxiajioabu的博客 5293

【Lambda 】Python中Lambda函数介绍

Lambda函数介绍,常用场景

唐古的博客 585
上一篇: Python小数据保存,有多少中分类?不妨看看他们的类比与推荐方案...
下一篇: 使用Python编写打字训练小程序
清风Python
博客等级 码龄7年 406粉丝 267原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值