使用 Python 一行寫 if 條件語句的方法~活用三元運算子與列表推導式的高效寫法

1. 前言

在 Python 程式設計中,使用一行來撰寫 if 條件語句可以讓程式碼更簡潔,特別是在條件判斷頻繁出現的情況下非常實用。本文將詳細介紹如何在 Python 中將「if 條件語句」寫成「一行」,並透過幾種技巧進行說明。我們會介紹三元運算子與列表生成式(List Comprehension)等實用範例,幫助你撰寫更清晰、高效的程式碼。

2. 使用 Python 三元運算子撰寫一行 if 語句的方法

在 Python 中,透過使用三元運算子(條件運算式),可以將 if 條件語句寫成一行。這在根據條件返回特定值時非常有用,能夠讓程式碼更加簡潔。

三元運算子的語法

Python 的三元運算子語法如下:

變數 = 值1 if 條件 else 值2

這段語法的意思是:若條件為 True,則回傳「值1」;若為 False,則回傳「值2」。

使用範例:判斷偶數或奇數

例如,想判斷一個數字是偶數還是奇數,並根據結果回傳不同的文字,可以這樣寫:

number = 4
result = "偶數" if number % 2 == 0 else "奇數"
print(result)  # 輸出:偶數

如上所示,利用一行即可撰寫條件判斷,在處理簡單的邏輯時特別方便。

實際應用範例:根據登入狀態顯示訊息

例如,當我們想根據使用者的登入狀態顯示不同訊息時,也可以使用三元運算子來處理:

is_logged_in = True
message = "歡迎回來" if is_logged_in else "請先登入"
print(message)  # 輸出:歡迎回來

三元運算子非常適合用來做根據條件選擇的簡單處理。不過,若邏輯過於複雜,會影響程式可讀性,建議只用於簡單的情境中。


3. 結合列表生成式與 if 條件語句

Python 的列表生成式(List Comprehension)是一種強大的寫法,可以在建立列表時讓程式碼更加簡潔。透過與 if 條件語句結合,可以根據條件產生特定內容的列表。

列表生成式的基本語法

若要在列表生成式中使用 if 條件語句,語法如下:

列表 = [處理 for 變數 in 可迭代物件 if 條件]

使用範例:建立偶數的列表

若要從 0 到 9 的數字中擷取出偶數並放入列表,可以這樣撰寫:

even_numbers = [x for x in range(10) if x % 2 == 0]
print(even_numbers)  # 輸出: [0, 2, 4, 6, 8]

列表生成式的應用範例

列表生成式不僅可以用來篩選資料,也能進行轉換。例如,從字串列表中挑出長度超過特定字數的單字:

words = ["apple", "banana", "cherry", "date"]
filtered_words = [word for word in words if len(word) > 5]
print(filtered_words)  # 輸出: ['banana', 'cherry']

使用列表生成式可以有效縮短程式碼長度,並根據條件快速完成資料篩選與轉換。

4. 結合 Python 的 if 與 for 寫成一行

將 for 迴圈與 if 條件語句結合後,可以一行撰寫只處理符合特定條件的元素。這在處理大量資料或列表時特別實用,能讓程式碼更簡潔。

if 與 for 的一行語法

基本語法如下:

列表 = [處理 for 變數 in 可迭代物件 if 條件]

使用範例:建立偶數平方的列表

若要從 1 到 10 的數字中,選出偶數並將其平方後放入列表,可以這樣寫:

squared_evens = [x**2 for x in range(1, 11) if x % 2 == 0]
print(squared_evens)  # 輸出: [4, 16, 36, 64, 100]

應用範例:根據條件篩選資料

以下範例是從列表中篩選出所有正數並轉成新的列表:

numbers = [-5, -1, 2, 8, -3, 7]
positive_numbers = [num for num in numbers if num > 0]
print(positive_numbers)  # 輸出: [2, 8, 7]

透過 if 和 for 的結合,可以在不冗長的情況下進行高效的資料處理與過濾。


侍エンジニア塾

5. 使用賦值運算式(海象運算子)撰寫一行 if 語句

從 Python 3.8 開始新增的賦值運算式(海象運算子):=,允許我們在 if 條件語句中同時進行變數的賦值。這個特性讓我們能夠在判斷條件的同時,儲存計算結果,提高程式效率。

賦值運算式的語法與基本用法

使用海象運算子時,語法如下:

if (變數 := 表達式) 條件:
    執行內容

使用範例:根據列表長度做條件判斷

下列範例會取得列表長度並用作條件,同時進行對應的處理:

some_list = [1, 2, 3, 4, 5]
if (length := len(some_list)) > 3:
    print(f"列表的長度為 {length},超過了 3")
# 輸出: 列表的長度為 5,超過了 3

實際應用場景

使用海象運算子可以避免重複計算,提高效能。特別是在處理列表、字串等需要多次使用同一結果的情況下,非常實用。

6. 使用一行 if 條件語句時的注意事項

一行 if 條件語句非常強大,但若過度使用或套用在複雜邏輯上,會導致程式難以閱讀。建議僅在簡單且直觀的條件判斷時使用;當邏輯較複雜時,還是以傳統的 if 結構撰寫為佳,以確保程式的可讀性與可維護性。

侍エンジニア塾

7. 總結與後續學習方向

本文介紹了各種在 Python 中將 if 條件語句寫成一行的方法,從基本的條件判斷到列表操作,再到海象運算子的進階應用。我們也說明了一行 if 的優點與潛在注意事項。透過這些技巧,能有效提升你在日常 Python 編程中的效率與程式碼品質,歡迎實際應用並持續練習,進一步精進你的開發技能!