Jak sprawdzić, czy lista jest pusta w Pythonie (wartości prawdy w Pythonie)

Poznaj najbardziej Pythoniczne sposoby sprawdzania, czy lista w Pythonie jest pusta. Porównaj niejawne kontrole logiczne z porównaniami długości.

Wypróbuj to rozwiązanie w Edytorze

Przegląd

Podczas programowania w języku Python często będziesz musiał sprawdzić, czy lista zawiera elementy przed próbą odczytania, zmodyfikowania lub przetworzenia jej zawartości. Dostęp do elementów pustej listy za pomocą nawiasów (np. `moja_lista[0]`) powoduje wyświetlenie błędu `IndexError`, który wstrzymuje wykonywanie programu. Dlatego wdrożenie czystych, defensywnych wzorców sprawdzania jest niezbędne dla stabilności aplikacji.

Najbardziej Pythonicznym sposobem sprawdzenia, czy lista jest pusta, jest użycie jej ukrytej wartości logicznej (prawdziwości). W Pythonie puste kolekcje (w tym listy, słowniki, krotki i zestawy) mają wartość „False” w kontekście boolowskim, podczas gdy zapełnione kolekcje mają wartość „True”. Pisanie „jeśli nie moja_lista:” jest bezpośrednie, bardzo czytelne i zgodne z wytycznymi PEP 8.

Chociaż porównywanie długości listy do zera (np. `if len(moja_lista) == 0:`) lub porównywanie listy bezpośrednio z pustym literałem listy (np. `if moja_lista == []:`) również działa, te podejścia są generalnie odradzane, ponieważ są mniej zwięzłe i mogą być nieco wolniejsze. Wykorzystanie wbudowanego w Pythonie testowania wartości logicznej sprawia, że ​​Twój kod jest czystszy i wydajniejszy.

Dane wyjściowe kodu i wykonania

Ten skrypt pokazuje różne metody sprawdzania, czy lista w Pythonie jest pusta.

empty_list_check.py
Spróbuj w Edytorze
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.")
Wyjście terminala
empty_list is indeed empty!
full_list has elements inside!
Length of empty_list is 0.

Wdrażanie krok po kroku

  • Napisz, jeśli nie moja_lista: aby sprawdzić, czy lista jest pusta (większość podejścia Pythona).
  • Napisz if moja_lista: aby sprawdzić, czy lista zawiera jeden czy więcej elementów.
  • Unikaj używania len(my_list) == 0 lub my_list == [] do sprawdzania pustki.

Często zadawane pytania

Dlaczego „jeśli nie moja_lista” jest preferowana zamiast „if len(moja_lista) == 0”?

Jest bardziej czytelny, idiomatyczny i nieco szybszy, ponieważ pozwala uniknąć wywoływania funkcji len() i porównywania liczb całkowitych.

Czy to sprawdzenie działa w przypadku innych kolekcji, takich jak słowniki lub krotki?

Tak, dokładnie ta sama zasada prawdziwości dotyczy pustych słowników ({}), pustych krotek (()), pustych zestawów (set()) i pustych ciągów znaków ("").

Powiązane tematy

Polecane zasoby Pythona

Poszerzaj swoją wiedzę dzięki powiązanym interaktywnym samouczkom, ściągawkom i porównaniom kodów.