> That is why I was going to use g.blank-feed as the template, > assign that to d["feed 1's link"] then just update the feed part.
The simplest way is just to assign a new blank dictionary. Don;t assign the same dictionary to each feed. (Incidentally your description above is much clearer than the one you initially posted!) feeds[link] = {key1:value1, key2:value2} If you need to pre-populate the dictionary with many values when you assign it (or need to compute the values) I'd recommend writing a small function that creates a new dictionary, and adds the values then returns the dictionary. Or maybe, better still, use a class and populate the feeds dictionary with instances of the class. class Feed: def __init__(self, val1=default1, val2=default2, val3=default3): self.key1 = val1 self.key2 = val2 self.key3 = val3 feeds[link1] = Feed(v1,v2,v3) feeds[link2] = Feed() # use default values After all that's exactly what a class is - a template for an object. What you definitely don't want to do is what you have been doing and assigning the same single dictionary object to each link entry. -- Alan G Author of the Learn to Program web site http://www.alan-g.me.uk/ http://www.amazon.com/author/alan_gauld Follow my photo-blog on Flickr at: http://www.flickr.com/photos/alangauldphotos _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor