2009-11-12 5 views
69

L'API avec laquelle je travaille peut renvoyer des listes [] vides.Comment vérifier si une liste est vide en Python?

Les instructions conditionnelles suivantes ne fonctionnent pas comme prévu:

if myList is not None: #not working 
    pass 

if myList is not []: #not working 
    pass 

Qu'est-ce qui fonctionne?

+2

aide '=' au lieu de 'est aurait not' avoir fait ce travail, bien que la forme' si myList' est préférée!. –

Répondre

138
if not myList: 
    print "Nothing here" 
13

listes vides évaluent à Faux dans des contextes booléens (tels que if some_list:).

9

J'aime la réponse de Zarembisty. Bien que, si vous voulez être plus explicite, vous pouvez toujours faire:

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

Vous pouvez le faire, mais cela viole le pep 8, qui dit: - Pour les séquences, (chaînes, listes, tuples), utilisez le fait que les séquences vides sont fausses. Oui: sinon suivants: si suivants: No: si len (seq) sinon len (seq) –

+0

Je vous remercie de l'avoir signalé à moi, Chris Lacasse. Je ne savais rien à propos de pep8, plus tôt – inspectorG4dget

+0

Ce serait aussi une pessimisation générale des performances: ne perdez pas de temps à compter des éléments de collections potentiellement longues, si tout ce que vous devez savoir, c'est s'ils sont vides. –

Questions connexes