2009-11-12 21 views
69

Die API, mit der ich arbeite, kann leere [] Listen zurückgeben.Wie überprüft man, ob eine Liste in Python leer ist?

Die folgenden bedingten Anweisungen funktionieren nicht wie erwartet:

if myList is not None: #not working 
    pass 

if myList is not []: #not working 
    pass 

Was funktioniert?

+2

mit '=' statt 'not' wird diese Arbeit gemacht hätte, wenn die' wenn myList' Form bevorzugt!. –

Antwort

138
if not myList: 
    print "Nothing here" 
13

Leere Listen auswerten auf False in boolean Kontexten (wie if some_list:).

9

Ich mag Zarembistys Antwort. Obwohl, wenn Sie wollen mehr explizit sein, können Sie immer tun:

if len(my_list) == 0: 
    print "my_list is empty" 
+26

Sie können das tun, aber es würde verletzen pep 8, die sagt: - Für Sequenzen, (Strings, Listen, Tupel), verwenden Sie die Tatsache, dass Sequenzen sind falsch. Ja: wenn nicht f: wenn f: No: if len (Seq) wenn nicht len ​​(f) –

+0

Sie danken mir dies für den Hinweis auf, Chris Lacasse. Ich hatte keine Ahnung von pep8, früher – inspectorG4dget

+0

Es wäre auch eine allgemeine Leistungspessimierung: Verbringe keine Zeit mit dem Zählen von Elementen potentiell langer Sammlungen, wenn alles, was du wissen musst, ist, ob sie leer sind. –

Verwandte Themen