> 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
_______________________________________________
Python mailing list
[email protected]
http://lists.python.it/mailman/listinfo/python