Zum Beispiel, wenn Sie das folgende übergeben:
a = []
Wie kann ich überprüfen, ob a
leer ist?
Zum Beispiel, wenn Sie das folgende übergeben:
a = []
Wie kann ich überprüfen, ob a
leer ist?
Um zu überprüfen, ob eine Liste leer ist oder nicht, können Sie zwei Möglichkeiten nutzen. Aber denken Sie daran, dass wir den Weg der expliziten Prüfung auf einen Sequenztyp vermeiden sollten (es ist ein weniger pythonisch Weg):
def enquiry(list1):
return len(list1) == 0
# ––––––––––––––––––––––––––––––––
list1 = []
if enquiry(list1):
print("The list isn't empty")
else:
print("The list is Empty")
# Result: "The list is Empty".
Der zweite Weg ist ein pythonischer ein. Diese Methode ist eine implizite Art der Überprüfung und viel besser als die vorherige.
def enquiry(list1):
return not list1
# ––––––––––––––––––––––––––––––––
list1 = []
if enquiry(list1):
print("The list is Empty")
else:
print("The list isn't empty")
# Result: "The list is Empty"
Ich hoffe, das hilft.
Hochgestuft, weil er auch zeigt, wie man überprüft, ob er nicht leer ist! Dies hilft, den entgegengesetzten, aber ebenso wichtigen Anwendungsfall abzudecken
def list_test (L):
if L is None : print('list is None')
elif not L : print('list is empty')
else: print('list has %d elements' % len(L))
list_test(None)
list_test([])
list_test([1,2,3])
Manchmal ist es sinnvoll, zu testen, ob None
und für die Leere getrennt, da es sich um zwei verschiedene Zustände handelt. Der obige Code erzeugt die folgende Ausgabe:
list is None
list is empty
list has 3 elements
Obwohl es nichts wert ist, dass None
ist fehlerhaft. Wenn Sie also nicht separat testen wollen für None
-ness, das müssen Sie nicht tun.
def list_test2 (L):
if not L : print('list is empty')
else: print('list has %d elements' % len(L))
list_test2(None)
list_test2([])
list_test2([1,2,3])
produziert erwartet
list is empty
list is empty
list has 3 elements
Wenn Sie prüfen wollen, ob eine Liste leer ist:
l = []
if l:
# do your stuff.
Wenn Sie prüfen wollen, ob alle Werte in der Liste leer sind. Es wird jedoch True
für eine leere Liste:
l = ["", False, 0, '', [], {}, ()]
if all(bool(x) for x in l):
# do your stuff.
Wenn Sie beide Fälle zusammen verwenden wollen:
def empty_list(lst):
if len(lst) == 0:
return False
else:
return all(bool(x) for x in l)
Jetzt können Sie es verwenden:
if empty_list(lst):
# do your stuff.
Es wurden viele Antworten gegeben, und viele von ihnen sind ziemlich gut. Ich wollte nur hinzufügen, dass die Prüfung
not a
gilt auch für None
und andere Arten von leeren Strukturen. Wenn Sie wirklich nach einer leeren Liste suchen wollen, können Sie dies tun:
if isinstance(a, list) and len(a)==0:
print("Received an empty list")
Es ist möglich, dass dies eine Ausnahme auslöst, wenn a
keine Liste ist und a
hat keine Methode __len__
umgesetzt. Ich würde empfehlen: if isinstance(obj, list): if len(obj) == 0: print '...'
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.