"Francesco Loffredo" <f...@libero.it> wrote
> On the next iteration you overwrite those two dictionaries
> with new values then append them to the list again.
> So you wind up with 2 copies of the updated dictionaries.
> ...
This is difficult for me too: why does this happen? Or, more
correctly,
why should this happen?
It happens because you can't store two objects in one.
There is only one dictionary. If you change its value you
change its value.
How can you save the current contents of a dictionary in a list,
making sure that the saved values won't change if you update the
dict?
You need to save a copy of the dictionary. ie Create a new dictionary.
If you put a box of white eggs in your shopping basket you cannot put
brown eggs into that box and expect to still have the white ones as
well.
You need to get two boxes!
You tell Roelof that the dictionary must be created at every loop,
but
if so, where goes the elegance of
myDictList.append(UpdateIt(myDict))
I don't understand what you mean here. What elegance?
Can you give a slightly fuller example?
You can update an existing dictionary in a list, but it doesn't
preserve
the original vesion any more than replacing white eggs with brown
preserves the white ones.
HTH,
--
Alan Gauld
Author of the Learn to Program web site
http://www.alan-g.me.uk/
_______________________________________________
Tutor maillist - Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor