Por que “[] == False” é avaliado como falso quando “se não []” for bem-sucedido?
Eu estou perguntando isso porque eu sei que a maneira pythonic para verificar se uma lista está vazia ou não é o seguinte:
<code>my_list = [] if not my_list: print "computer says no" else: # my_list isn't empty print "computer says yes" </code>
vai imprimircomputer says no
Isso me leva a identificar[]
comFalse
valores de verdade; no entanto, se eu tentar comparar [] e False "diretamente", obtenho o seguinte:
<code>>>> my_list == False False >>> my_list is False False >>> [] == False False </code>
etc ...
Oque esta acontecendo aqui? Eu sinto que estou sentindo falta de algo realmente óbvio.