Jean_Francois Moulin wrote: > 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
> The first line builds a list of six dictionaries with initialised keys. > 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... > > Thanks for helping a newbie. > > JF xvec = [{'value':0}]*6 xids = [id(x) for x in xvec] print xids Should print a list of six integers, all equal. So all elements in your list are the same. Another way to construct the desired list: yvec = [{'value':0} for i in range(6)] yids = [id(y) for y in yvec] print yids The elements in this list should be all different. -- http://mail.python.org/mailman/listinfo/python-list