2009-11-12 20 views
69

La API con la que estoy trabajando puede devolver listas [] vacías.¿Cómo comprobar si una lista está vacía en Python?

Las siguientes sentencias condicionales no están funcionando como se esperaba:

if myList is not None: #not working 
    pass 

if myList is not []: #not working 
    pass 

¿Qué va a trabajar?

+2

Uso de '=' en lugar de 'not' se habría hecho este trabajo, aunque el' si se prefiere la forma myList'!. –

Respuesta

138
if not myList: 
    print "Nothing here" 
13

listas vacías evalúan a False en booleano contextos (como if some_list:).

9

Me gusta la respuesta de Zarembisty. Aunque, si quieres ser más explícito, siempre se puede hacer:

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

Puede hacerlo, pero violaría pep 8, que dice: - Para secuencias, (cadenas, listas, tuplas), use el hecho de que las secuencias vacías son falsas. Sí: si no ss: ss: si No: si len (SEC) si no len (SEC) –

+0

Gracias por señalar esto a mí, Chris Lacasse. No tenía conocimiento sobre pep8, anteriormente – inspectorG4dget

+0

También sería una pesimización general del rendimiento: no dedique tiempo a contar elementos de colecciones potencialmente largas, si todo lo que necesita saber es si están vacías. –

Cuestiones relacionadas