获取价值的关键

时间:2012-02-07 21:18:41

标签: python

  

可能重复:
  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']

假设我们需要以相反的方式做事。 获得价值的关键最简单的方法是什么?

注意:在这种情况下,我的字典是静态的。参赛作品永远不会改变。

4 个答案:

答案 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'