[PIPython] Spigolo duro! o testa dura? DIZ. e LISTE

MBposta mbposta
Lun 14 Nov 2005 11:37:42 CET


Giusto Alex,
ma questo come avevo scritto e' un esempio.
Io carico un dizionario composto da liste e dizionari interni dal disco con 
il sistema pickle. Quindi mi trovo giÓ ad esempio una serie di liste simili 
a quella incriminata ma inizialmente con valori tutti uguali a zero .
Il problema nasce quando devo modificare un solo elemento della lista come 
giÓ detto.
Come faccio  ?
Grazie
Ciao
Mauro


----- Original Message ----- 
From: "Alex Martelli" <aleaxit a yahoo.com>
To: "Gli utilizzatori italiani di Python" <python a lists.python.it>
Sent: Monday, November 14, 2005 2:21 AM
Subject: Re: [PIPython] Spigolo duro! o testa dura? DIZ. e LISTE


>
> On Nov 13, 2005, at 10:17 AM, MBposta wrote:
>
> Il bug nel tuo codice e` molto semplice:
>
>> lista=[[0,0,0,0]]*5
>
> Questa e` una lista di 5 reference alla STESSA lista di quattro
> zeri.  Quando ci chiami su deepcopy questo NON cambia, naturalmente,
> la forma del grafo dei riferimenti (sarebbe un errore tremendo se lo
> facesse).  Se vuoi una lista di cinque liste DISTINTE devi costruirla
> in altro modo, ad esempio con una list-comprehension [ [0]*4 for i in
> xrange(5) ] (nota che per le liste INTERNE puoi usare l'operatore *
> grazie al fatto che i numeri sono immutabili, comunque se ti trovi
> meglio puoi usare una list comprehension anche in quel caso).
>
>
> Alex
>
>


--------------------------------------------------------------------------------


_______________________________________________
La mailing list di python.it
python a lists.python.it
http://lists.python.it/cgi-bin/mailman/listinfo/python



--------------------------------------------------------------------------------


No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.1.362 / Virus Database: 267.13.0/167 - Release Date: 11/11/2005



More information about the Python mailing list