Sto chiedendo questo perché so che il modo divinatorio per verificare se una lista è vuota o non è la seguente:Perché "[] == False" restituisce False quando "se non []" ha esito positivo?
my_list = []
if not my_list:
print "computer says no"
else:
# my_list isn't empty
print "computer says yes"
stamperà computer says no
, ecc Quindi questo mi porta a identificare []
con False
verità -valori; tuttavia, se provo a confrontare [] e False "direttamente", io ottenere il seguente:
>>> my_list == False
False
>>> my_list is False
False
>>> [] == False
False
ecc ...
cosa sta succedendo qui? Mi sento come se mi mancasse qualcosa di veramente ovvio.
Questo è un ottimo design, in quanto anche i programmatori non usano la clausola 'if variable == True:'. Dovrebbe essere 'se la variabile è True:' (È esattamente True, non qualcos'altro - Non è il modo migliore di fare le cose nella maggior parte dei casi), o 'if variable' (è vero-y). – Darthfett