python3,#4过,其余WA,求佬改

P1104 生日

luoguguler @ 2024-11-17 07:22:55

# 输入人数
student_num = int(input())
students = []
for _ in range(student_num):
    # 输入学生信息
    input_list = input().split(" ")
    # 记录学生信息
    student = {}
    name = input_list[0]
    year = input_list[1]
    month = input_list[2]
    # 生日日期格式化
    if len(month) == 1:
        month = "0" + month
    day = input_list[3]
    if len(day) == 1:
        day = "0" + day
    # 字符串拼接后将日期整合为一个整形数字
    birth = int("".join([year, month, day]))

    # 将信息存储在一个字典中
    student["name"] = name
    student["birth"] = birth

    # 更新学生列表
    students.append(student)

# 将字典列表倒序,目的是为了在排序之后让相同生日但是后输入的人先输出
ans = students[::-1]

# 根据生日日期排序
ans = sorted(ans, key=lambda item:item["birth"])

# 输出一个字符串,用“\n”换行
print ("\n".join(student["name"] for student in ans))

# 此前也尝试过直接用for循环:
#for student in ans:
#  print(student[name])
# 效果一致,但是仍然没有变化

曾下载#1测试集,似乎与结果一致,但是#1未过,不慎苦恼,望赐教


by luoguguler @ 2024-11-17 07:27:02

底下的for循环里忘了给name加引号。当时测试的时候是加了的,这点问题不大


by chenyibo_Jack @ 2024-11-17 08:21:35

数组没清零


|