python列表嵌套排序问题

img


需要根据列表嵌套来排序及比较
例如:
输入:
1001 Kelly 65
1002 Max 78
1003 Jerry 95
1004 Lori 88
1005 Grace 96
输出:
成绩前三
名:
学号:1005姓名:Grace成
绩:96
学号:1003姓名:Jerry成
绩:95
学号:1004姓名:Lori成绩:88

你好,你这个可以通过一个二维数组和lambda表达式排序并展示

students = [
    [1001, 'Kelly', 65],
    [1002, 'Max', 78],
    [1003, 'Jerry', 95],
    [1004, 'Lori', 88],
    [1005, 'Grace', 96]
]

# 按照成绩从高到低排序
students.sort(key=lambda x: x[2], reverse=True)

# 输出前三名
print('成绩前三')
for i in range(3):
    student = students[i]
    print('名:')
    print(f'学号:{student[0]}', end='')
    print(f'姓名:{student[1]}', end='')
    print(f'成绩:{student[2]}')

代码如下:

students = []
for i in range(5):
    info = input().split()
    student = {'id': info[0], 'name': info[1], 'score': int(info[2])}
    students.append(student)

students.sort(key=lambda x: x['score'], reverse=True)

for i in range(3):
    print('学号:{} 姓名:{} 成绩:{}'.format(students[i]['id'], students[i]['name'], students[i]['score']))

运行结果:

img