due variabili in Python hanno la stessa id
:Due variabili in Python hanno lo stesso ID, ma non elenchi o tuple
a = 10
b = 10
a is b
>>> True
Se prendo due list
s:
a = [1, 2, 3]
b = [1, 2, 3]
a is b
>>> False
in base alle this link Senderle ha risposto che i riferimenti a oggetti immutabili hanno lo stesso id e gli oggetti mutabili come le liste hanno id differenti.
Così ora secondo la sua risposta, tuple dovrebbe avere lo stesso ID - che significa:
a = (1, 2, 3)
b = (1, 2, 3)
a is b
>>> False
Idealmente, come tuple non sono mutabili, dovrebbe restituire True
, ma sta tornando False
!
Qual è la spiegazione?
si deve distinguere tra le variabili e gli oggetti (liste e tuple) - quando si confrontano due oggetti come questo si confrontare i loro indirizzi di memoria che si differenziano, pur avendo stessa lista e tuple elementi. – dmitryro
Penso che tu abbia frainteso la risposta a cui ti colleghi. Oggetti distinti e immutabili hanno differenti identificazioni. Ma per interi <256 (sulla maggior parte degli interpreti) il valore è precaricato in memoria e quindi nel tuo primo esempio a è b –
Grazie @JacquesGaudin! Mi fa capire per ora. –