如何在 Python 中檢查清單是否為空白(Pythonic Truth Values)

了解在 Python 中檢查清單是否為空的最 Pythonic 方法。將隱式布林檢查與長度比較進行比較。

在編輯器中嘗試此解決方案

概述

在 Python 開發中,您經常需要在嘗試讀取、修改或處理清單內容之前驗證清單是否包含元素。使用括號(例如“my_list[0]”)存取空列表的元素會引發“IndexError”,從而停止程式執行。因此,實施乾淨的、防禦性的檢查模式對於應用程式的穩定性至關重要。

檢查清單是否為空的最 Pythonic 方法是使用其隱式布林值(真實性)。在 Python 中,空集合(包括列表、字典、元組和集合)在布林上下文中計算結果為“False”,而填充的集合計算結果為“True”。編寫「if not my_list:」是直接的、高度可讀的,並且符合 PEP 8 準則。

雖然將列表的長度與零進行比較(例如,“if len(my_list) == 0:”)或將列表直接與空列表文字進行比較(例如,“if my_list == []:”)也可以,但通常不鼓勵使用這些方法,因為它們不太簡潔,並且可能會稍微慢一些。採用 Python 內建的真值測試可以讓您的程式碼更乾淨、更有效率。

程式碼和執行輸出

此腳本顯示了在 Python 中檢查清單是否為空的不同方法。

empty_list_check.py
在編輯器中嘗試
empty_list = []
full_list = [10, 20, 30]

# Method 1: The Pythonic Way (Implicit boolean check)
if not empty_list:
    print("empty_list is indeed empty!")

if full_list:
    print("full_list has elements inside!")

# Method 2: Length comparison (Less Pythonic, but functional)
if len(empty_list) == 0:
    print("Length of empty_list is 0.")
端子輸出
empty_list is indeed empty!
full_list has elements inside!
Length of empty_list is 0.

逐步實施

  • 寫 if not my_list: 來檢查清單是否為空(最Pythonic的方法)。
  • 編寫 if my_list: 檢查清單是否包含一個或多個元素。
  • 避免使用 len(my_list) == 0 或 my_list == [] 來檢查空性。

常見問題解答

為什麼「if not my_list」優於「if len(my_list) == 0」?

它更具可讀性、更符合習慣且速度稍快,因為它避免了呼叫 len() 函數來尋找和整數比較。

此檢查是否適用於其他集合(例如字典或元組)?

是的,完全相同的真實性規則適用於空字典 ({})、空元組 (())、空集合 (set()) 和空字串 ("")。

相關主題

推薦的 Python 資源

透過相關的互動式教學、備忘單和程式碼比較來擴展您的知識。