获取Python中得分最高的密钥

时间:2019-06-09 17:42:11

标签: python python-3.x dictionary key key-value

我想知道您是否知道其他/更好的方法(没有max方法)来获取字典中得分最高的键? :

report_card = {'french' : 14,
            'english' : 12,
            'math' : 16,
            'chemistry' : 19,
            'sport' : 14}
max = 0

for subject, score in report_card.items():
    if max < report_card[subject]:
        max = report_card[subject]

for subject, score in report_card.items():
    if max == report_card[subject]:
        print(f"The subject with the highest score is {subject} with {score} points")

2 个答案:

答案 0 :(得分:0)

稍微简单些,但是请问max函数的存在是有原因的。

report_card = {'french' : 14,
            'english' : 12,
            'math' : 16,
            'chemistry' : 19,
            'sport' : 14}
max = 0
max_s = ""

for subject, score in report_card.items():
    if max < score:
        max = score
        max_s = subject

print(f"The subject with the highest score is {max_s} with {max} points")

答案 1 :(得分:0)

尝试一下:

max(report_card.items(), key=lambda x: x[1])[0]

dict.items()将所有值成对返回。 max返回可迭代的最大值。 key关键字允许您传递函数,该函数为每个项目产生值以进行最大比较。 max函数将返回report_card.items()生成的值之一(而不是键函子生成的值),因此您需要[0]才能从中获取键。