> 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 Python@lists.python.it http://lists.python.it/mailman/listinfo/python