Python - Lambda 函数用于查找两个元素之间的较小值

pythonserver side programmingprogramming更新于 2024/1/21 22:00:00

Lambda 函数是 Python 中没有名称的流行函数。它们旨在帮助我们在需要应用任何小操作但我们知道我们不会在其他地方重复使用代码时使用。在本文中,我们将学习如何使用 lambda 函数查找两个元素之间的较小值。我们将探索 min、sorted 等几种方法以及 lambda 函数来执行相同操作。

使用 if else 语句

if else 语句在 Python 中称为条件运算符。它使我们能够根据某些标准做出某些决定。条件表达式评估条件表达式的结果是 True 还是 False。如果为 True,则将执行代码块,否则将被阻止。

示例

在下面的例子中,我们使用了条件表达式和 lambda 函数。我们已经使用了条件表达式来检查 a 和 b 之间的最小数字。我们定义了 lambda 函数并将 a 和 b 的值传递给它,并返回从 lambda 函数获得的结果。

def smaller(a,b):
    smaller = lambda a, b: a if a < b else b
    result = smaller(a, b)
    return result
a=45
b=24
print("{} 和 {} 之间较小的数字是:{}。format(a, b, smaller(a,b)))

输出

45 和 24 之间较小的数字是:24

使用 min 函数

Python 中的 min 函数返回一系列元素中的最小值。

语法

min(arg1, arg2, ..., argN, key=func)

这里 arg1、arg2、...、argN 是参数或元素。我们还可以将任何可迭代对象传递给函数,而不是一系列参数。如果我们想使用任何复杂的数据结构,但又不想使用自定义排序,那么"key"指定需要执行的任何自定义排序。

示例

在下面的例子中,我们使用 min 函数来确定两个数字 a 和 b 中较小的一个。我们使用 lambda 函数并将表达式包装在其中。接下来,我们调用 lambda 函数并将参数 a 和 b 传递给它。

def find_smaller(a, b):
    smaller = lambda a, b: min(a, b)
    return smaller(a, b)
a = 47
b = 24
result = find_smaller(a, b)
print("{} 和 {} 之间较小的数字是:{}。format(a, b, result))

输出

47 和 24 之间较小的数字是:24。

使用 Sorted 方法

Python 中的 sorted 函数是一个内置函数。它允许我们以可迭代顺序对序列或对象进行排序。它返回一个新的排序列表而不更改原始列表。

语法

sorted(iterable, key=key, reverse=Boolean value)

这里的 sorted 是函数的名称。iterable 是可迭代对象的名称。如果可迭代对象非常复杂,则 key 被定义为指定属性的参数,我们需要使用该属性对可迭代对象进行排序。reverse 参数采用布尔值 True 或 False。如果设置为 True,它将按相反顺序排序。

示例

在下面的例子中,我们使用了 sorted 方法。我们使用 lambda 函数将 sorted 方法应用于元素 a 和 b。接下来,我们调用 lambda 函数并传递参数 a 和 b。

def find_smaller(a, b):
    smaller = lambda a, b: sorted([a, b], key=lambda x: x)[0]
    return smaller(a, b)
a = 455
b = 89
result = find_smaller(a, b)
print("{} 和 {} 之间较小的数字是:{}。format(a, b, result))

输出

455 和 89 之间较小的数字是:89。

使用 Lambda 和 Reduce 方法

'reduce' 不是 Python 中的内置方法。它属于 functools 模块。functools 模块提供了各种方法来处理函数。它有助于以可迭代的方式应用特定函数。它需要两个必需参数:第一个是函数的名称,第二个是可迭代对象。

示例

在下面的例子中,我们首先导入了 functools 方法。接下来,我们创建了一个包含两个元素 a 和 b 的列表。我们使用 lambda 函数来开发一个条件表达式,该表达式求 a 和 b 中较小的数字。接下来我们使用reduce方法将这个lambda函数应用到元素上。

from functools import reduce
def find_smaller(a, b):
    elements=[]
    elements.append(a)
    elements.append(b)
    smaller = lambda a, b: a if a < b else b
    result = reduce(smaller, elements)
    return result
a = 4557
b = 66
result = find_smaller(a, b)
print("{} 和 {} 之间较小的数字是:{}。format(a, b, result))

输出

4557 和 66 之间较小的数字是:66。

结论

在本文中,我们了解了如何在 Python 中找出两个值之间的较小值。我们使用 lambda 函数来处理它,它提供了一种优雅的代码编写方式。我们使用 Python 的几种方法来处理它,如 reduce、sorted 等。由于它是两个数字之间的简单比较,我们几乎不需要关心时间复杂性和优化算法。


相关文章