Python:1032 挖掘机技术哪家强_代码比较简洁_没有解决运行超时

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

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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

炒茄子

不装逼我浑身难受aaa

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值