如何比较字典与未知键的值?

时间:2016-08-13 11:19:12

标签: python dictionary

我是Python的初学者。我写了一个代码,其中参赛者的名字和他们的分数将存储在字典中。我将字典称为results。但是在编写代码时我把它留空了。当程序运行时,键和值将被添加到字典中。

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

执行程序后,我们说results == {"john":22, "max":20}

我想比较John和Max的得分,并宣布得分最高的人为胜利者。但是我不会在节目开始时知道参赛者的名字。那么我如何比较得分,并宣布其中一个为胜利者。

3 个答案:

答案 0 :(得分:2)

你可以这样做,以获得胜利者:

max(results, key=results.get)

答案 1 :(得分:1)

这是一个实现你想要的工作范例,它基本上是从字典中获取最大项目。在这个示例中,您还会看到其他宝石,比如生成确定性随机值,而不是手动插入它们并获取最小值,这里就是:

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]

答案 2 :(得分:0)

你可以这样做:

import operator
stats = {'john':22, 'max':20}
maxKey = max(stats.items(), key=operator.itemgetter(1))[0]
print(maxKey,stats[maxKey])

你也可以通过这种方式获得最大元组:

maxTuple = max(stats.items(), key=lambda x: x[1])

希望它有所帮助!