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 等來處理它。由於它是兩個數字之間的一個簡單比較,因此我們幾乎不需要考慮時間複雜度和最佳化演算法。