Другой ответ хорош. Вы также можете превратить его в список кортежей, а затем легко отсортировать его:
scores = {
'name': ['joe', 'pete', 'betsy', 'susan', 'pat'],
'score1': [99, 90, 84, 65, 100],
'score2': [85, 91, 90, 55, 98]}
t = list(zip(*scores.values()))
print(t)
Выход:
[('joe', 99, 85), ('pete', 90, 91), ('betsy', 84, 90), ('susan', 65, 55), ('pat', 100, 98)]
Тогда вы можете отсортировать это:
# Sort by score1
print(sorted(t, key=lambda x: (x[1]), reverse=True))
# Sort by score2
print(sorted(t, key=lambda x: (x[2]), reverse=True))
# Sort by both scores:
print(sorted(t, key=lambda x: (x[1], x[2]), reverse=True))
Просто другой способ атаковать ту же проблему. Делая это таким образом, вы можете легко распечатать оценки отдельных лиц.