Do you need help?

Notice Board

Per partecipare al corso di Fondamenti di programmazione 2021-22 loggatevi e attivatelo nella vostra pagina dei corsi preferiti. A quel punto il corso appare nel menù personale cliccando sul proprio avatar. Per i materiali degli anni precedenti seguite lo stesso metodo.

To join the Programming/Lab 2021-22 course, log-on and select it on the my courses page. It will appear on the personal menu of your avatar. For earlier years use the same method.

VIDEOLEZIONI DEL CORSO DI FONDAMENTI DI PROGRAMMAZIONE AA20-21

PROGRAMMING COURSE VIDEOCONFERENCES AY20-21

Problema modifica lista, lista.copy()

L
LucaStravato (1360 points)
7 31 38
in Es2 by (1.4k points)
closed by

Link schermata->    https://drive.google.com/file/d/1RUOoxPQvfz5_BeMQLC5N86TGPeo91gHz/view?usp=sharing    <-

Cliccando il precedente link potete visualizzare uno screenshot. Il mio problema è che cambiando l (In [17]), (sembra) cambiare anche copia, che è la 'seconda-copia' lista, la quale non dovrebbe cambiare secondo esigenze del mio algoritmo. Ho provato a non usare copy() e a fare la semplice assegnazione con l operatore = ma in quel caso hanno identità uguali e comunque il problema persiste lo stesso.

179 views
closed with the note: answered

2 Answers

Best answer
S
SkyLion (1020 points)
5 15 24
by (1.0k points)
selected by

Prova ad usare:

import copy

lista2 = copy.deepcopy(lista)

Questo dovrebbe risolvere il tuo problema in quanto copy.copy() fa una "shallow copy" della tua lista (che contiene altre liste), in poche parole effettivamente copia le lista, ma le liste contenute al suo interno saranno dei puntatori invece che delle vere copie. Invece con copy.deepcopy() andrai effettivamente a fare una copia ricorsiva della tua lista originaria, andando a copiare tutti gli elementi in essa contenuta.

A
Angelo9787 (3670 points)
6 32 51
by (3.7k points)
Ho già risposto ad una domanda simile a questo link: http://q2a.di.uniroma1.it/3408/problema-passaggio-parametri-tra-oggetti-dello-stesso-tipo

Prova a buttarci un occhio ;)