Forum >> Principianti >> [Risolto] Sul funzionamento di sort()

Pagina: 1

Salve a tutti,
vorrei capire il corretto funzionamento di sort(), in particolare vorrei capire perchè succede questo:

>>> a=[2,4,5,1]
>>> a
[2, 4, 5, 1]
>>> b=a
>>> b
[2, 4, 5, 1]
>>> b.sort()
>>> b
[1, 2, 4, 5]
>>> a
[1, 2, 4, 5]

Perchè nel momento in cui applico sort() alla lista "b" copiata a partire da "a", sort() modifica anche la lista "a"?




--- Ultima modifica di h in data 2015-12-03 12:58:20 ---
Ho risolto...
>>> a=[2,4,5,1]
>>> b=a[:]
>>> b
[2, 4, 5, 1]
>>> b.sort()
>>> b
[1, 2, 4, 5]
>>> a
[2, 4, 5, 1]
un saluto a tutti...
Qui sort() non c'entra, devi capire correttamente l'assegnamento delle varie etichette ad un oggetto e ti consiglio di usare id() in modo che tu possa capire subito a quale oggetto stanno facendo riferimento.

Ti faccio un esempio:
>>> a = [2,4,5,1]
>>> id(a)
139784997827648
>>> b = a
>>> id(b)
139784997827648
Come puoi facilmente intuire, le due etichette a e b si stanno riferendo allo stesso stesso oggetto, in questo caso [2,4,5,1], quindi ecco spiegato il perché del comportamento da te descritto.

Ciao.
Daniele


Pagina: 1



Esegui il login per scrivere una risposta.