可能重复:
Most efficient method to get key for a value in a dict
Python: Modify a dict to make the key a value, and a value the key
在python中,假设我们有一个字典:
mydict = {'myKey': 'myValue'}
要获取myKey的值,我们
myDict['myKey']
假设我们需要以相反的方式做事。 获得价值的关键最简单的方法是什么?
注意:在这种情况下,我的字典是静态的。参赛作品永远不会改变。
答案 0 :(得分:1)
这应该有效:
keyPoint = [key for key, value in mydict.iteritems() if value == "myValue"][0]
这将返回密钥的值。
答案 1 :(得分:0)
你可以制作一个颠倒的词典
revDict = dict((v,k) for k,v in myDict.items())
或者如果所有值都不明显
revDict = defaultdict(list)
for k,v in myDict:
revDict[v].append(k)
答案 2 :(得分:0)
您可以使用以下内容将字典转换为键到列表的排列:
newdict = {}
for k,v in mydict.iteritems():
lst = newdict.get(v, [])
newdict[v].append(k)
然后你可以索引到那个反向字典来找到你的密钥:
mykey = newdict.get(myvalue)
答案 3 :(得分:0)
你可以创建一个'反向'字典,因为初始字典是静态的:
>>> revdict = dict([(mydict[key],key) for key in mydict])
>>> revdict['myValue']
'myKey'