Iterate Over A Single Dimension In Python Dictionary
Possible Duplicate: iterating one key in a python multidimensional associative array i created a dictionary on 2 dimensions myaddresses['john','smith'] = 'address 1' mya
Solution 1:
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 heretry:
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 ?
Solution 2:
Solution 3:
It iterates over all keys, so it might not be the most efficient way, but I'll just state the obvious method in case you overlooked it:
forkeyin myaddresses.keys():
ifkey[0] == 'john':
print myaddresses[key]
Post a Comment for "Iterate Over A Single Dimension In Python Dictionary"