Ciao, Il sab 23 mag 2020, 23:41 Giuliano Curti <giulian...@gmail.com> ha scritto:
> On 5/23/20, Marco Beri <marcob...@gmail.com> wrote: > > On Sat, 23 May 2020, 23:13 Giuliano Curti, <giulian...@gmail.com> wrote: > > > >> > >> 2) ....... > >> > > > > Perché sono la stessa lista. > > è quello che immaginavo, però logica vorrebbe (la mia che ho capito > essere diversa da quella del sistema :-) ) che allora anche V=[0]*3 > sia la ripetizione della stessa variabile e invece no; > In python esistono oggetti immutabili e mutabili: gli interi (o le stringhe o le tuple) sono immutabili, quindi non puoi cambiarne il valore una volta creati, questo per dire che quelli lì sono 3 0 diversi, quando ne modifichi uno stai cestinando l'oggetto e ne stai creando uno nuovo (cioè con id diverso). Le liste invece sono mutabili quindi con quel *2 successivo stai creando sì due liste ma che fanno riferimento allo stesso oggetto (stesso id); ne consegue che modificando un elemento contenuto in una lista in realtà stai modificando l'oggetto referenziato e quindi tutte le sue referenze e quindi entrambe le liste. Altri oggetti mutabili sono i dizionari ad esempio. Spero di essere stato chiaro. Qui la documentazione https://docs.python.it/html/ref/objects.html Qui trovi la documentazione ad un modulo utile https://docs.python.org/3.8/library/copy.html
_______________________________________________ Python mailing list Python@lists.python.it https://lists.python.it/mailman/listinfo/python