Python - 使用 Lambda 函数查找两个元素中的较小值


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("The smaller number between {} and {} is: {}.".format(a, b, smaller(a,b)))  

输出

The smaller number between 45 and 24 is: 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("The smaller number between {} and {} is: {}.".format(a, b, result))

输出

The smaller number between 47 and 24 is: 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("The smaller number between {} and {} is: {}.".format(a, b, result))

输出

The smaller number between 455 and 89 is: 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("The smaller number between {} and {} is: {}.".format(a, b, result))

输出

The smaller number between 4557 and 66 is: 66.

结论

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

更新于:2023-07-18

273 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告

© . All rights reserved.