building lists of dictionaries
Rob Williscroft
rtw at freenet.co.uk
Sun Jul 23 11:48:32 EDT 2006
Jean_Francois Moulin wrote in
news:mailman.8428.1153667854.27775.python-list at python.org in
comp.lang.python:
> Hi all,
>
> I tried this piece of code (FWIW, it was taken as is from a help
> section of mpfit, a mathematical routine for least square fitting):
>
> parinfo = [{'value':0., 'fixed':0, 'limited':[0,0],
> 'limits':[0.,0.]}]*6 parinfo[0]['fixed'] = 1
> parinfo[4]['limited'][0] = 1
> parinfo[4]['limits'][0] = 50.
>
> The first line builds a list of six dictionaries with initialised
> keys. I expected that the last three lines would only affect the
> corresponding keys of the corresponding dictionnary and that I would
> end up with a fully initialised list where only the 'fixed' key of the
> first dict would be 1, and the first values of limited and limits for
> dict number 4 would be 1 and 50. respectively....
>
> This is not so!
> I end up with all dictionaries being identical and having their
> 'fixed' key set to 1, and limited[0]==1 and limits[0]==50.
>
> I do not understand this behaviour...
This should help:
<url:http://www.python.org/doc/faq/programming/#how-do-i-create-a-
multidimensional-list>
As a TinyUrl: http://tinyurl.com/s8akj
Rob.
--
http://www.victim-prime.dsl.pipex.com/
More information about the Python-list
mailing list