[Tutor] two way dictionary

ingo janssen ingoogni at gmail.com
Wed Nov 28 19:53:03 CET 2007

for a little cherrypy app I'm working on I wrote the piece of code
below. Goal is to obscure the first part of a directory path(s) the
user is browsing. Replacing the first part of the path with an alias
works fine, but for the application it has to work both ways. I know
how to swap the keys and values of the dict but that's not elegant as
it can be changed over time.
Is there a dict that works "both ways"?
Could a dict be constructed from the dict class that works both ways?
Is writing code around a list of tuples more elegant? home = [('one' ,
"c:\\gnuwin32"), ('two' , "c:\\dell")]
Did I miss the completely obvious way to deal with the problem?


import os


def fetch_alias(path, home_dict):
   path = os.path.normpath(path)
   pathlist = path.split(os.sep)
   if pathlist[0] in home_dict:
       pathlist[0] = home_dict[pathlist[0]]
       newpath = os.sep.join(pathlist)
       return os.path.normpath(newpath)
       print "fail"

print fetch_alias(path, home)



More information about the Tutor mailing list