首先接收输入的数据,这很简单,可以用字典。
num = int(input()) score = {} for i in range(num): a, b = map(int, input().split()) if a not in score.keys(): # 如果不存在,那么创建key以及value值 score[a] = b else: score[a] += b # 如果存在,那么在这基础上加上value值
接着,我有两种方法去判断字典的最大值(学校的总分)并输出最大值对应的key值(即学校代号)。第一种是按部就班,第二种就是充分利用list的index函数,keys(), values()求解,
第三种:将字典key和value颠倒
第一种:
max_key = 0 # 最大值初始化为0 max_value = -1 # 由于最大值>=0, 所以这里让最大值初始化为-1没有问题 for i in score.keys(): #简单的遍历找最大值 if score[i] > max_value: max_key = i max_value = score[i]
第二种:
max_value = max(score.values()) # 通过max函数找最大值 max_key = list(score.keys())[list(score.values()).index(max_value)] '''1.将score.values()列表化,这样才可以用index()函数 2.用index()函数可以找出max_value对应的index 3.由于将score.keys()列表化可以通过索引来找值'''
第三种:
将字典key和value颠倒
max_value = max(score.values()) score = {v : k for k, v in score.items()} max_key = score[max_value]
num = int(input()) score = {} for i in range(num): a, b = map(int, input().split()) if a not in score.keys(): score[a] = b else: score[a] += b '''max_key = 0 max_value = -1 for i in score.keys(): if score[i] > max_value: max_key = i max_value = score[i] print(max_key, max_value)''' max_value = max(score.values()) score = {v : k for k, v in score.items()} max_key = score[max_value] print(max_key, max_value)