在 Python 中的 Lambda 函数中传递多个参数

您所在的位置:网站首页 runif函数包含几个参数 在 Python 中的 Lambda 函数中传递多个参数

在 Python 中的 Lambda 函数中传递多个参数

2024-07-14 04:47:51| 来源: 网络整理| 查看: 265

Python 中的 Lambda 函数 在 Lambda 函数中传递多个参数

lambda 形式或 lambda 表达式是 Python 中的匿名函数。它们是可以使用 Python 中保留的 lambda 关键字创建的内联函数。

本文将讨论 Python 中的 lambda 函数,并学习如何处理其中的多个参数。

Python 中的 Lambda 函数

一个 lambda 函数由三部分组成:lambda 关键字、参数或绑定变量以及函数体。函数体只能有一个 Python 表达式,因为这些函数是内联的。

这些函数不仅可以立即调用,还可以像其他常规 Python 函数一样使用。

Lambda 函数具有以下语法:

lambda : expression

请注意,函数体中的表达式应该返回一些值。如果表达式不返回任何值,则 lambda 函数的结果将是 None 值。

对于内联调用,我们将 lambda 函数括在括号内,并将其旁边的参数值放在括号内。

以下是此操作的语法:

(lambda : expression) ( )

为了理解这些 lambda 函数,让我们创建一个将两个数字相乘的 lambda 函数。正如我们所讨论的,这些函数可以立即调用并用作常规 Python 函数,因此示例将包括 lambda 函数的两个版本。

乘法示例参考以下代码:

# Regular function calls def multiply(a, b): return a * b print(multiply(1, 2)) print(multiply(10, 5)) print(multiply(10.5, 9.3)) print(multiply(0.945, -5.645)) print(multiply(1000e9, 0), end="\n\n") # Inline invocation print((lambda a, b: a * b)(1.1, 1.2)) print((lambda a, b: a * b)(10, 5)) print((lambda a, b: a * b)(10.5, 9.3)) print((lambda a, b: a * b)(0.945, -5.645)) print((lambda a, b: a * b)(1000e9, 0))

输出:

2 50 97.65 -5.334524999999999 0.0 1.32 50 97.65 -5.334524999999999 0.0

为了更精确,让我们考虑另外三个示例,我们将从数字列表中过滤奇数值,计算列表元素的平方,以及计算列表元素的立方根。

第一个示例请参考以下 Python 代码:

x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] y = [22, 44, 66, 88, 110] z = [78, 9797, 97, 985, 75473, 2845, 74, 9964, 652, 124, 0, 6747] # Regular function calls def filter_odd(a): return a % 2 != 0 print(list(filter(filter_odd, x))) print(list(filter(filter_odd, y))) print(list(filter(filter_odd, z)), end="\n\n") # Inline invocation print((lambda array: list(filter(lambda a: a % 2 != 0, array)))(x)) print((lambda array: list(filter(lambda a: a % 2 != 0, array)))(y)) print((lambda array: list(filter(lambda a: a % 2 != 0, array)))(z))

输出:

[1, 3, 5, 7, 9] [] [9797, 97, 985, 75473, 2845, 6747] [1, 3, 5, 7, 9] [] [9797, 97, 985, 75473, 2845, 6747]

有关第二个示例,请参阅以下 Python 代码片段:

x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] y = [22, 44, 66, 88, 110] z = [78, 9797, 97, 985, 75473, 2845, 74, 9964, 652, 124, 0, 6747] # Regular function calls def square(a): return a ** 2 print(list(map(square, x))) print(list(map(square, y))) print(list(map(square, z)), end="\n\n") # Inline invocation print((lambda array: list(map(lambda a: a ** 2, array)))(x)) print((lambda array: list(map(lambda a: a ** 2, array)))(y)) print((lambda array: list(map(lambda a: a ** 2, array)))(z))

输出:

[1, 4, 9, 16, 25, 36, 49, 64, 81, 100] [484, 1936, 4356, 7744, 12100] [6084, 95981209, 9409, 970225, 5696173729, 8094025, 5476, 99281296, 425104, 15376, 0, 45522009] [1, 4, 9, 16, 25, 36, 49, 64, 81, 100] [484, 1936, 4356, 7744, 12100] [6084, 95981209, 9409, 970225, 5696173729, 8094025, 5476, 99281296, 425104, 15376, 0, 45522009]

并且,请参阅以下第三个示例的 Python 代码片段:

x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] y = [22, 44, 66, 88, 110] z = [78, 9797, 97, 985, 75473, 2845, 74, 9964, 652, 124, 0, 6747] # Regular function calls def square(a): return a ** (1 / 3) print(list(map(square, x))) print(list(map(square, y))) print(list(map(square, z)), end="\n\n") # Inline invocation print((lambda array: list(map(lambda a: a ** (1 / 3), array)))(x)) print((lambda array: list(map(lambda a: a ** (1 / 3), array)))(y)) print((lambda array: list(map(lambda a: a ** (1 / 3), array)))(z))

输出:

[1.0, 1.2599210498948732, 1.4422495703074083, 1.5874010519681994, 1.7099759466766968, 1.8171205928321397, 1.912931182772389, 2.0, 2.080083823051904, 2.154434690031884] [2.802039330655387, 3.530348335326063, 4.04124002062219, 4.4479601811386305, 4.791419857062784] [4.272658681697917, 21.397565740522946, 4.594700892207039, 9.949747895601458, 42.2601016892268, 14.169703309060843, 4.198336453808407, 21.518462597981888, 8.671266460286839, 4.986630952238645, 0.0, 18.896015508976504] [1.0, 1.2599210498948732, 1.4422495703074083, 1.5874010519681994, 1.7099759466766968, 1.8171205928321397, 1.912931182772389, 2.0, 2.080083823051904, 2.154434690031884] [2.802039330655387, 3.530348335326063, 4.04124002062219, 4.4479601811386305, 4.791419857062784] [4.272658681697917, 21.397565740522946, 4.594700892207039, 9.949747895601458, 42.2601016892268, 14.169703309060843, 4.198336453808407, 21.518462597981888, 8.671266460286839, 4.986630952238645, 0.0, 18.896015508976504] 在 Lambda 函数中传递多个参数

要在 lambda 函数中传递多个参数,我们必须提及所有以逗号分隔的参数。让我们通过一个例子来理解这一点。

我们将创建一个带有三个参数的 lambda 函数;一个列表和两个整数。lambda 函数将从每个列表元素中添加第一个整数并减去第二个整数。

为此,请参阅以下 Python 代码:

x1 = [1, 8, 27, 64, 125, 216, 343, 512] x2 = 5 x3 = 6 y1 = [11, 22, 33, 44, 55, 66, 77, 88, 99] y2 = 4 y3 = 1 z1 = [78, 9797, 97, 985, 75473, 2845, 74] z2 = 99 z3 = 99 # Regular function calls def modify(a, b, c): return [x + b - c for x in a] print(modify(x1, x2, x3)) print(modify(y1, y2, y3)) print(modify(z1, z2, z3), end="\n\n") # Inline invocation print((lambda a, b, c: [x + b - c for x in a])(x1, x2, x3)) print((lambda a, b, c: [x + b - c for x in a])(y1, y2, y3)) print((lambda a, b, c: [x + b - c for x in a])(z1, z2, z3))

输出:

[0, 7, 26, 63, 124, 215, 342, 511] [14, 25, 36, 47, 58, 69, 80, 91, 102] [78, 9797, 97, 985, 75473, 2845, 74] [0, 7, 26, 63, 124, 215, 342, 511] [14, 25, 36, 47, 58, 69, 80, 91, 102] [78, 9797, 97, 985, 75473, 2845, 74]


【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭