Quando si confrontano una tupla con una lista come ...Python: Perché il confronto tra liste e tuple non è supportato?
>>> [1,2,3] == (1,2,3)
False
>>> [1,2,3].__eq__((1,2,3))
NotImplemented
>>> (1,2,3).__eq__([1,2,3])
NotImplemented
... Python non li profonda-compare come fatto con (1,2,3) == (1,2,3)
.
Quindi qual è la ragione di questo? È perché l'elenco mutabile può essere modificato in qualsiasi momento (problemi di sicurezza del thread) o cosa?
(io so dove questo è implementato in CPython, quindi per favore non rispondere dove, ma perché è implementato.)
Una lista non è una tupla e viceversa. Sono diversi tipi. '[] ==()' restituirà 'False'. – jathanism
Vedi anche: http://stackoverflow.com/questions/12135264/what-are-the-best-ways-to-compare-the-contents-oft-two-list-like-objects/12135322#12135322 – Erik