栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python:1032 挖掘机技术哪家强

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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)

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/887451.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号