如何在 Python Lambda 函式中使用 if、else 和 elif


Python 是一種用途廣泛且強大的程式語言,以其簡單性和可讀性而聞名。Python 脫穎而出的關鍵特性之一是它支援 lambda 函式,lambda 函式是可以在執行時建立的匿名函式。Lambda 函式提供了一種簡潔優雅的方式來定義小的、單行函式,而無需正式的函式定義。這些函式可用於各種場景,以增強程式碼的可讀性和可維護性。

在本教程中,我們將深入探討 Python 中 lambda 函式的迷人世界,並探索如何在其中整合 if、else 和 elif 語句。我們將逐步介紹示例和解釋,以展示 if、else 和 elif 在 lambda 函式中的用法,突出它們的語法並說明它們產生的輸出。因此,讓我們深入瞭解 if、else 和 elif 語句及其在控制程式碼執行流程中的作用。

如何在 Python Lambda 函式中使用 if、else 和 elif

Python 中的 lambda 函式是一種匿名函式,可以在一行程式碼中定義,無需正式的函式名稱。它通常用於建立小型行內函數,用於不需要完整函式定義的任務。Lambda 函式通常與高階函式結合使用,或者在需要快速函式定義的場景中使用。

帶有 if、else 和 elif 的 lambda 函式的一般結構如下所示

lambda arguments: expression if condition else expression

讓我們分解一下這個結構

  • lambda 關鍵字用於定義 lambda 函式。

  • arguments 指的是函式的輸入引數,類似於傳統的函式定義。

  • if 關鍵字用於引入條件語句。

  • condition 表示要評估的邏輯條件。如果條件為真,則執行第一個 expression;否則,執行第二個 expression

為了更好地理解 lambda 函式,讓我們考慮一個簡單的示例。假設我們想要建立一個 lambda 函式,如果給定的數字是偶數則返回“偶數”,如果是奇數則返回“奇數”。我們可以按如下方式定義 lambda 函式

is_even = lambda x: "Even" if x % 2 == 0 else "Odd"

在上面提供的示例中,我們有一個 lambda 函式,它接受一個引數 x,該引數表示我們要評估的數字。在 lambda 函式中,我們有一個條件 x % 2 == 0,它檢查 x 是否能被 2 整除且沒有餘數。如果此條件評估為真,則 lambda 函式返回字串“偶數”。但是,如果條件評估為假,表示 x 不能被 2 整除,則 lambda 函式返回字串“奇數”。這使我們能夠使用簡潔的 lambda 函式和 if-else 語句來確定給定數字是偶數還是奇數。

現在,讓我們看看函式的實際操作

print(is_even(4))
print(is_even(7))

輸出

Even
Odd

如您在上面的輸出中看到的,帶有 if-else 語句的 lambda 函式根據我們提供的條件正確地確定了一個數字是偶數還是奇數。這種簡潔且小的形式使我們能夠有效地處理此類簡單的決策過程。

既然我們已經瞭解了 Python lambda 函式中的 if 和 else,那麼讓我們轉到本文的下一部分,瞭解如何在 lambda 函式中使用多個 if else 或 elif。

使用 Elif 的多個 if-else 條件

在本節中,我們現在將探討如何透過整合 elif 語句在 lambda 函式中使用多個 if-else 條件。這使我們能夠處理更復雜的決策場景。讓我們看一個例子來更好地理解這個概念。

考慮一個根據學生的成績確定等級的 lambda 函式。我們可以按如下方式定義 lambda 函式

get_grade = lambda score: "A" if score >= 90 else "B" if score >= 80 else "C" if score >= 70 else "D" if score >= 60 else "F"

在上面的示例中,我們在 lambda 函式中使用了 elif 語句來實現多個條件。需要注意的是,這些條件是按順序一個接一個地評估的。隨著評估的進行,如果發現某個條件為真,則返回相應的等級。但是,如果沒有任何條件滿足,則 lambda 函式將透過返回值“F”優雅地結束。這種方法確保了每個條件都按特定順序進行檢查,使我們能夠有效地處理一系列場景,並根據給定條件提供準確的結果。

讓我們看看使用不同分數的函式的實際操作

print(get_grade(95))
print(get_grade(85))
print(get_grade(75))
print(get_grade(65))
print(get_grade(65))

輸出

A
B
C
D
E

如您從上面的輸出中看到的,lambda 函式根據我們提供的分數正確地確定了等級。這裡的評估順序至關重要。如果第一個條件為真,它將返回相應的等級並跳過其餘條件。這種順序評估使我們能夠有效地處理多種情況。

巢狀 if-else 條件

除了多個 if-else 條件之外,我們還可以將 if-else 語句巢狀在 lambda 函式中以處理更復雜的決策邏輯。讓我們再舉一個例子來理解這個概念。

假設我們要將數字分類到不同的範圍:“正數”如果它大於 0,“負數”如果它小於 0,以及“零”如果它正好等於 0。我們可以使用巢狀 if-else 條件定義一個 lambda 函式,如下所示

categorize_number = lambda num: "Positive" if num > 0 else "Negative" if num < 0 else "Zero"

在此示例中,lambda 函式檢查數字是否大於 0。如果為真,則返回“正數”。否則,它繼續執行巢狀條件並檢查數字是否小於 0。如果為真,則返回“負數”。如果沒有任何條件滿足,則返回“零”。

讓我們使用不同的數字測試該函式

print(categorize_number(5))
print(categorize_number(-2))
print(categorize_number(0))

輸出

Positive
Negative
Zero

如上面輸出所示,帶有巢狀 if-else 條件的 lambda 函式根據定義的邏輯正確地對數字進行了分類。此技術使我們能夠有效地處理複雜的決策場景。

結論

在本教程中,我們探討了 Python lambda 函式的多功能性,並學習瞭如何在其中整合 if、else 和 elif 語句。透過使用 lambda 函式,我們可以建立簡潔高效的程式碼,而無需正式的函式定義。我們已經看到了在 lambda 函式中使用 if、else 和 elif 語句的示例,包括處理多個條件和巢狀 if-else 語句。這些技術使我們能夠以緊湊且可讀的方式處理複雜的決策場景。我們還為每種情況提供了可執行的示例。

更新於:2023-07-25

5K+ 次檢視

開啟你的 職業生涯

透過完成課程獲得認證

立即開始
廣告

© . All rights reserved.