I want to create a Dictionary called "First" (as in First Name) that will store numerous first names which are all stored in the dictionary via a function. The idea is that the dictionary can support multiple names,
so here is my problem:
When I add a name to the dictionary, then I go to add a second one via the function, the previous name is overwritten by the last. How do I mend this? I know it involves something like a dictionary within a dictionary, or nested conditionals. Here is my code:
def store(data,value):
data['Names'] = {}
data['Names']['first'] = {}
data['Names']['first'] = {value}
Have a look at collections.defaultdict. Then you can do things like:
Python < 2.5 doesn't have
defaultdict
, however you can achieve the same thing in with ordinarydict
too.setdefault
returns the existing value if the key already exists in dict, or sets the new value and returns the newly set value if the key doesn't exist.You should probably be storing the list of names as a list, rather than a dictionary. So you would have:
To add one after instantiation, you can do:
Lists are zero-indexed, so to get the 1st first name, you can say:
Turn
data['Names']['first']
in a list and append to it: