首先接收输入的数据,这很简单,可以用字典。
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)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)