Dlaczego „[] == Fałsz” ocenia na Fałsz, gdy „jeśli nie []” się powiedzie?

Pytam o to, ponieważ wiem, że pythonowy sposób sprawdzenia, czy lista jest pusta, jest następujący:

<code>my_list = []
if not my_list:
    print "computer says no"
else:
    # my_list isn't empty
    print "computer says yes"
</code>

wydrukujecomputer says noitd. To prowadzi mnie do identyfikacji[] zFalse wartości prawdy; Jeśli jednak spróbuję porównać [] i False „bezpośrednio”, otrzymam następujące informacje:

<code>>>> my_list == False
False
>>> my_list is False
False
>>> [] == False
False
</code>

itp...

Co tu się dzieje? Czuję, że brakuje mi czegoś naprawdę oczywistego.

questionAnswers(4)

yourAnswerToTheQuestion