Facciamo un esempiolista python per valore, non con riferimento
a=['help', 'copyright', 'credits', 'license']
b=a
b.append('XYZ')
b
['help', 'copyright', 'credits', 'license', 'XYZ']
a
['help', 'copyright', 'credits', 'license', 'XYZ']
volevo aggiungere valore nella lista 'B', ma il valore di lista 'A' sono cambiati.
Penso di non avere idea del perché sia così (python passa le liste per riferimento).
La mia domanda è "come posso passarlo per valore in modo che l'aggiunta di" b "non cambi valori in" a "?"
Non funziona per me. Qualsiasi modifica apportata a 'b' viene anche vista in' a'. – Mannix
@Mannix Puoi pubblicare il [codice completo] (https://stackoverflow.com/help/mcve) in cui hai mostrato il problema (cioè un'asserzione dovrebbe fallire) in una nuova domanda? Molto probabilmente, non stai modificando la lista stessa, ma i suoi elementi. Crea una [copia profonda] (https://docs.python.org/dev/library/copy.html#copy.deepcopy) se vuoi una nuova lista i cui elementi sono anche copie. – phihag