2011-07-20 37 views
4

我有一个字典,“整数”,整数,我想找到最高值的关键字。我用这个代码:Python中字典最大值的关键字

key = max(scores, key=scores.get) 

但是,这只能返回一个关键。这如何处理最高价值的关系?我只收到一个号码。在领带的情况下,这是什么?我怎样才能获得最高价值的所有钥匙? 感谢您的帮助。

回答

9

你可以运行下面的,例如:

max_value = max(scores.values()) 
keys = [ i for (i,v) in scores.iteritems() if v == max_value ] 

“钥匙”将现在持有所有这些对应的按键最大值。

+1

这可能是最好的方法。 –

+0

+1你抓住了我! – joaquin

+1

如果v == max_value'有点快一点,会不会'keys = [i for(i,v)在scores.items()中? –

1

max函数返回一个值。你可以使用这样的事情:

key = max(scores, key=scores.get) 
keys = [k for k in scores if scores[k] == scores[key]] 

编辑:固定

+0

这是行不通的。 'max_value'将包含与/ a最大值关联的*键*,而不是该值本身。 –

+0

我想你是指'如果分数[k] ==分数[max_value]'我很确定'max'函数返回值的索引。 –

+0

@Tim你击败了我! :) –

1
scores = dict(a=1,b=2,c=3,d=4,e=5,f=5) 
maxscr = max(scores.values()) 

maxscrs = [scr for scr in scores if scores[scr]== maxscr] 

给出:

['e','f'] 
1
max_value = max(scores, key=scores.get) 
keys = [score for score in scores if scores[score] == max_value]