How to compare the values of a dictionary with unknown keys?
本问题已经有最佳答案,请猛点这里访问。
我是Python的初学者。我已经写了一个代码,在其中参赛者的名字和他们的分数将被存储在一本字典中。让我把这本词典叫做
1 2 3 4 5 6 7 8 | results={} name=raw_input() #some lines of code to get the score# results[name]=score #code# name=raw_input() #some lines of code to get the score# results[name]=score |
在程序执行之后,我们假设
我想比较约翰和马克斯的得分,并宣布得分最高的人为获胜者。但在节目开始时,我不知道参赛者的名字。那么,我如何比较得分,并宣布其中一个为获胜者呢?
您可以这样做,以获得优胜者:
1 | max(results, key=results.get) |
下面是一个实现您想要的功能的工作示例,它基本上是从字典中获取最大的项目。在这个示例中,您还将看到其他gem,比如生成确定性随机值,而不是手动插入它们并获取最小值,如下所示:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | import random import operator results = {} names = ["Abigail","Douglas","Henry","John","Quincy","Samuel", "Scott","Jane","Joseph","Theodor","Alfred","Aeschylus"] random.seed(1) for name in names: results[name] = 18 + int(random.random() * 60) sorted_results = sorted(results.items(), key=operator.itemgetter(1)) print"This is your input", results print"This is your sorted input", sorted_results print"The oldest guy is", sorted_results[-1] print"The youngest guy is", sorted_results[0] |
你可以做到:
1 2 3 4 | import operator stats = {'john':22, 'max':20} maxKey = max(stats.items(), key=operator.itemgetter(1))[0] print(maxKey,stats[maxKey]) |
您还可以通过以下方式整体获取max tuple:
1 | maxTuple = max(stats.items(), key=lambda x: x[1]) |
希望它有帮助!