i created a dictionary on 2 dimensions
myaddresses['john','smith'] = "address 1"
myaddresses['john','doe'] = "address 2"
How can i iterate over one dimension in the fashion
for key in myaddresses.keys('john'):
解决方案
Bad news: you can't (not directly at least). What you did was not a "2 dimensions" dict, but a dict with tuples (string pairs in your case) as keys, and only the hash value of the key is used (as usually with hashtables). What you want requires a sequential lookup, ie:
for key, val in my_dict.items():
# no garantee we have string pair as key here
try:
firstname, lastname = key
except ValueError:
# not a pair...
continue
# this would require another try/except block since
# equality test on different types can raise anything
# but let's pretend it's ok :-/
if firstname == "john":
do_something_with(key, val)
Needless to say that it kind of defeat the whole point of using a dict. Err... what about using a proper relational DB instead ?