La lista vacía es igual a Ninguna o no?

Posible duplicado:
¿Por qué “[] == False” se evalúa como False cuando “if not []” tiene éxito?

Soy nuevo en python según el operador ternario de python

>>> 'true' if True else 'false' true true 

Estoy esperando la salida del código a continuación como [] porque [] no es igual a Ninguno

 >>> a=[] >>> a==None False >>> a if a else None None 

Por favor, si estoy equivocado

Gracias hema

La lista vacía, [] , no es igual a None .

Sin embargo, se puede evaluar en False es decir, su valor de “verdad” es False . (Vea las fonts en los comentarios dejados en el OP.)

Debido a esto,

 >>> [] == False False >>> if []: ... print "true!" ... else: ... print "false!" false! 

None es la única instancia de NoneType y generalmente se usa para indicar la ausencia de valor. Lo que sucede en su ejemplo es que la lista vacía, tomada en un contexto booleano, se evalúa como False , la condición falla, por lo que se ejecuta la twig else. El intérprete hace algo como:

 >>> a if a else None [] if [] else None [] if False else None None 

Aquí hay otra discusión útil con respecto a la prueba None : no Ninguna en Python