On 02/12/13 11:03, Wolfgang Maier wrote:

... and since you want to be able to resolve ambiguous last names based on
first names, you will have to store not just the states, but also the first
names.
You can do so by turning the entries in senateInfo from a list of strings
(states) into a list of tuples (first name, state) like this:

     senateInfo[lastName] = [(firstName, state)]

or for pre-existing entries:

     senateInfo[lastName].append((firstName, state))

This results in a mixed set of values for your dictionary. Some will be simple strings (or tuples), others lists of tuples. You might want to consider standardising on a list for all even if some only have a single value.

This should simplify the code needed to extract the data later.

You can also use the dictionary get() method to return an empty
list if no entry exists yet so your entry code looks like

info[lastName] = info.get(lastName,[]).append((firstName, state))

And your retrieval code can use the same approach:

# get() returns a list of 0,1 or multiple tuples
for firstName,state in info.get(lastName, []):
    # process the tuple

hth
--
Alan G
Author of the Learn to Program web site
http://www.alan-g.me.uk/
http://www.flickr.com/photos/alangauldphotos

_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor

Reply via email to