Sprawdzałem listę, aby sprawdzić, czy jest pusta, czy nie. Zwykle używam len (list) == 0 i niewyraźnie pamiętałem, że przeczytałem jakiś czas temu, że prawidłowym sposobem sprawdzenia, czy lista jest pusta, było to, czy była to prawda czy fałsz.Testowanie listy w języku Boolean w języku Python
Więc spróbowałem, że lista jest fałszywa, a to zwróciło fałsz. Może powinienem używać ==? Nie, które również zwróciło fałsz. lista ma wartość True, zwracana jest wartość false, tak jak lista == True.
Teraz jestem zdezorientowany więc zrobić szybkie google i kończy się pod adresem: Best way to check if a list is empty
Górny odpowiedź brzmi:
if not a:
print "List is empty"
Więc szukać wokół trochę więcej i kończy się w instrukcji Pythona gdzie 4.1 oznacza:
Każdy obiekt może zostać przetestowany pod kątem wartości true, do użycia w warunku, jeśli lub w czasie, lub jako operand w operacjach Boolean poniżej. Następujące wartości są uważane za fałszywe:
dowolna pusta sekwencja, na przykład '',(), [].
Teraz jestem zmieszany. Jeśli testuję listę tak, jak nie ma ona listy, działa dobrze. Ale jeśli pusta lista jest fałszywa, to dlaczego nie mogę zrobić, jeśli lista jest fałszywa lub jeśli lista == fałsz?
Dzięki
W szczególności nazywa się metodę [__nonzero__] (http://docs.python.org/reference/datamodel.html#object.%5F%5Fnonzero%5F%5F) – ernie