Skip to content Skip to sidebar Skip to footer

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"