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

Rispondere a