2012-06-01 93 views
0

我正在處理將名稱映射到收到的投票的字典。我需要將名稱與最多的選票關聯起來,並將其分配給變量win。查找與字典中的值關聯的最大數字

到目前爲止:

vote = {} 

for key in vote: 
    vote(max(key)) = win 

我如何關聯贏得的名字,因爲我相信現在我的錯誤是我它關聯到的最高數字。

謝謝你的幫助。

+1

這個問題很清楚:一兩件事,代碼將不會執行任何操作,因爲投票字典是空的,您的任務似乎是倒退(將'win'分配給'vote'我而不是其他方式),而這不是你如何訪問字典。你需要更加努力地處理你的例子。 –

回答

1
win = sorted(vote, key=lambda x: votes[x])[-1] 

此處瞭解詳情:http://docs.python.org/library/functions.html#sorted

+0

你也可以在'min()'和'max()'中使用'key'。如果您只需要最大值或最小值,那麼與對O(n log(n))進行排序相比,它們的效率更高[O(n) –

3

通常的方法是

win = max(vote, key=vote.get) 

你也可以使用一個計數器

from collections import Counter 
win, = Counter(vote).most_common(1)