如果我有一个名为ref的目录,如下所示
ref = {}
ref["abc"] = "def"
我可以从“abc”中得到“def”。
def mapper(from):
return ref[from]
但是,我怎样才能从“def”到“abc”呢?
def revmapper(to):
??????
如果经常这样做,将需要构建一个反向目录:
>>> rev_ref = dict((v,k) for k,v in ref.iteritems())
>>> rev_ref
{'def': 'abc'}
>>> def revmapper(to):
... return rev_ref[to]
如果很少用,那么就这样做:
>>> def revmapper(to):
... for k,v in ref.iteritems():
... if v == to: return k
你可以做一个反向目录:
revdict = dict((v,k) for k,v in ref.items())
查查你想要的:
assert revdict["def"] == "abc"
注意,如果两个键映射到相同的值,这将无法工作。