华为OD机试真题-智能成绩表-2023年OD统一考试(C卷)---Python3--开源

题目:

考察内容:

sort(双排序)+ if + dict(keys;items())

代码:

python 复制代码
"""
analyze:

input:
int n 学生人数; int m 科目数量
科目名称(不重复)
人名(不会重名) + 科目成绩
。。。。
。。。。
排名的科目

output:
按成绩排序的名字,空格隔开(成绩相同,按照学生姓名字典排序)
eg:
3 2
yuwen shuxue
fangfang 95 90
xiaohua 88 95
mimmim 100 95
shuxue

3 2
yuwen shuxue
fangfang 95 90
xiaohua 88 95
mimmim 100 82
zhongfen

way

"""

while True:
    n, m = map(int, input().split())
    subject = input().split()
    student_score = dict()
    for _ in range(n):
        temp = input().split()
        student_score.update({temp[0]: temp[1:]})
    sort_subject = input()
    # print(n, m)
    # print(subject)
    # print(student_score)
    # print(sort_subject)
    if sort_subject in subject:
        index = subject.index(sort_subject)
        res = sorted(student_score.items(), key=lambda x: (-int(x[1][index]), x[0]))
    else:
        # 按照总分进行排序
        res = sorted(student_score.items(), key=lambda x: (-sum(map(int, x[1])), x[0]))
    print(" ".join(dict(res).keys()))
相关推荐
火云洞红孩儿4 小时前
告别界面孤岛:PyMe如何用一站式流程重塑Python GUI开发?
开发语言·python
叫我辉哥e14 小时前
新手进阶Python:办公看板集成ERP跨系统同步+自动备份+AI异常复盘
开发语言·人工智能·python
晚风吹长发4 小时前
初步了解Linux中的命名管道及简单应用和简单日志
linux·运维·服务器·开发语言·数据结构·c++·算法
C++ 老炮儿的技术栈5 小时前
不调用C++/C的字符串库函数,编写函数strcpy
c语言·开发语言·c++·windows·git·postman·visual studio
布局呆星5 小时前
闭包与装饰器
开发语言·python
fyzy5 小时前
C++写后端实现,实现前后端分离
开发语言·c++
huohuopro5 小时前
Mybatis的七种传参方式
java·开发语言·mybatis
Lee_SmallNorth5 小时前
变态需求之【角色不同访问数据库的用户不同】
java·开发语言·数据库
扶苏-su5 小时前
Java网络编程:InetAddress 详解
java·开发语言·网络
IOT-Power6 小时前
QT构建构建DataBus总线
开发语言·qt