如果我有一个名为ref的字典如下
ref = {}
ref["abc"] = "def"
我可以从“abc”获得“def”
def mapper(from):
return ref[from]
但是,我如何才能从“def”变为“abc”?
def revmapper(to):
??????
答案 0 :(得分:22)
如果您经常这样做,您将需要构建反向字典:
>>> 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
答案 1 :(得分:5)
您可以制作反向词典:
revdict = dict((v,k) for k,v in ref.items())
然后查找你想要的东西:
assert revdict["def"] == "abc"
注意,如果两个键映射到相同的值,则无效。
答案 2 :(得分:2)
dict(map( lambda a:[a[1],a[0]], d.iteritems() ))