我是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的得分,并宣布得分最高的人为胜利者。但是我不会在节目开始时知道参赛者的名字。那么我如何比较得分,并宣布其中一个为胜利者。
答案 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])
希望它有所帮助!