[Python] Confronto dizionari.

Federico Fissore federico a fsfe.org
Mar 2 Feb 2021 12:31:24 CET


Gabriele Battaglia wrote on 02/02/21 12:13:
> Ma allora che differenza c'è fra c=d e c=d.copy()
> Se, come dici, ci mette dentro tutto ciò che contiene l'origine senza 
> modificarli... allora è una semplice assegnazione come quella 
> dell'operatore "=", giusto?

la differenza è che copy ti da un dizionario nuovo, a cui puoi togliere 
e aggiungere chiavi senza modificare il vecchio

Assegnando:
 >>> a = {'ciao':'mondo'}
 >>> a
{'ciao': 'mondo'}
 >>> b = a
 >>> b['ciao'] = 'gente'
 >>> a
{'ciao': 'gente'}
 >>> b
{'ciao': 'gente'}

Copiando:
 >>> a = {'ciao':'mondo'}
 >>> a
{'ciao': 'mondo'}
 >>> b = a.copy()
 >>> b['ciao'] = 'gente'
 >>> a
{'ciao': 'mondo'}
 >>> b
{'ciao': 'gente'}


> 
> L'ho fatto e funziona! Però, cosa significa [0]?
> 

E' un riferimento a un link che ho messo a fondo della mail, al fine di 
rendere il testo della mail stessa più leggibile

> C'è qualche motivo, di carattere generale... per cui non si dovrebbe fare?
> Chiedo per imparare. :)

Nessuno a parte il consumo di memoria e un po' di CPU: un'ottimizzazione 
prematura che va bene se il codice della tua funzione è semplice, ma se 
è complesso come dici forse non ne vale la pena

federico


Maggiori informazioni sulla lista Python