Python:1032 挖掘机技术哪家强

Python:1032 挖掘机技术哪家强,第1张

首先接收输入的数据,这很简单,可以用字典

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)

 

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/922486.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-16
下一篇 2022-05-16

发表评论

登录后才能评论

评论列表(0条)

保存