2012-06-01 36 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)