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