pro*_*eek 17 python dictionary
可能重复:
反向字典查找 - Python
如果我有一个名为ref的字典如下
ref = {}
ref["abc"] = "def"
Run Code Online (Sandbox Code Playgroud)
我可以从"abc"获得"def"
def mapper(from):
return ref[from]
Run Code Online (Sandbox Code Playgroud)
但是,我如何才能从"def"变为"abc"?
def revmapper(to):
??????
Run Code Online (Sandbox Code Playgroud)
Ste*_*hen 22
如果您经常这样做,您将需要构建反向字典:
>>> rev_ref = dict((v,k) for k,v in ref.iteritems())
>>> rev_ref
{'def': 'abc'}
>>> def revmapper(to):
... return rev_ref[to]
Run Code Online (Sandbox Code Playgroud)
如果这种情况很少见,并且您不关心它是否效率低下,请执行以下操作:
>>> def revmapper(to):
... for k,v in ref.iteritems():
... if v == to: return k
Run Code Online (Sandbox Code Playgroud)
你可以制作一个反向词典:
revdict = dict((v,k) for k,v in ref.items())
Run Code Online (Sandbox Code Playgroud)
然后查找你想要的东西:
assert revdict["def"] == "abc"
Run Code Online (Sandbox Code Playgroud)
请注意,如果两个键映射到相同的值,则无效.