Please ignore secret bonuses. Secret tests do NOT award bonus. Max hw grade is 30+2 bonus efficiency

Do you need help?

Notice Board

Problema modifica lista, lista.copy()

L
LucaStravato (1360 points)
10 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.

301 views
closed with the note: answered

2 Answers

Best answer
S
SkyLion (1020 points)
7 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)
10 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 ;)