2011-07-20 38 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]