华为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()))
相关推荐
专注VB编程开发20年1 小时前
javascript的类,ES6模块写法在VSCODE中智能提示
开发语言·javascript·vscode
黄雪超8 小时前
JVM——函数式语法糖:如何使用Function、Stream来编写函数式程序?
java·开发语言·jvm
ThetaarSofVenice8 小时前
对象的finalization机制Test
java·开发语言·jvm
思则变9 小时前
[Pytest] [Part 2]增加 log功能
开发语言·python·pytest
lijingguang9 小时前
在C#中根据URL下载文件并保存到本地,可以使用以下方法(推荐使用现代异步方式)
开发语言·c#
¥-oriented9 小时前
【C#中路径相关的概念】
开发语言·c#
CoderCodingNo9 小时前
【GESP】C++四级考试大纲知识点梳理, (7) 排序算法基本概念
开发语言·c++·排序算法
恋猫de小郭10 小时前
Meta 宣布加入 Kotlin 基金会,将为 Kotlin 和 Android 生态提供全新支持
android·开发语言·ios·kotlin
JosieBook10 小时前
【Java编程动手学】使用IDEA创建第一个HelloJava程序
java·开发语言·intellij-idea
Thomas_YXQ10 小时前
Unity3D DOTS场景流式加载技术
java·开发语言·unity