[Python] Dizionario modificato.
Marco Santamaria
marco.santamaria a gmail.com
Ven 5 Set 2014 14:51:05 CEST
> Cosa succede nel primo caso?
> Viene modificato il dizionario messo nella lista?
> Perché?
>
Nel primo caso ogni iterazione del ciclo for modifica lo stesso oggetto
elem, definito fuori dal ciclo e aggiunto più volte alla lista. Quando
viene inserito l'oggetto nella lista non viene ridefinito, come nel secondo
esempio.
Questo codice, ulteriormente semplificato eliminando il for, forse si
capisce meglio:
elem = dict()
> lista = []
>
> elem['nome'] = 0
> lista.append(elem)
>
> elem['nome'] = 1
> lista.append(elem)
>
> print lista
>
L'output è:
[{'nome': 1}, {'nome': 1}]
Se invece scrivo:
lista = []
>
> elem = dict()
> elem['nome'] = 0
> lista.append(elem)
>
> elem = dict()
> elem['nome'] = 1
> lista.append(elem)
>
> print lista
>
elem viene ridefinito prima del secondo inserimento e infatti l'output è:
[{'nome': 0}, {'nome': 1}]
>
Marco
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20140905/f762ce6d/attachment.html>
Maggiori informazioni sulla lista
Python