可能的重复问题:
Python中的反向字典查找
如果我有一个名为 ref 的字典如下:
ref = {}
ref["abc"] = "def"
我可以从"abc"中获取"def"
def mapper(from):
return ref[from]
但是,我怎么才能从"def"得到"abc"呢?
def revmapper(to):
??????
可能的重复问题:
Python中的反向字典查找
如果我有一个名为 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"
dict(map( lambda a:[a[1],a[0]], d.iteritems() ))
d = {'a':[1, 2, 3]}
是不可能的。 - razpeitiad = {'a':(1,2,3)}
,如果多个键具有相同的值,则无法正常工作...不幸的是,使用低效的方法总是低效的。 - Stephen