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等来处理。由于这只是两个数字之间的简单比较,我们几乎不需要考虑时间复杂度和优化算法。