[Python] un dubbio sulle liste

Luigi Curzi tremst a gmail.com
Dom 24 Maggio 2020 00:05:58 CEST


Ciao,

Il sab 23 mag 2020, 23:41 Giuliano Curti <giulianc51 a gmail.com> ha scritto:

> On 5/23/20, Marco Beri <marcoberi a gmail.com> wrote:
> > On Sat, 23 May 2020, 23:13 Giuliano Curti, <giulianc51 a 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
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20200524/165fe7e7/attachment.html>


Maggiori informazioni sulla lista Python