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