python: sorting

Yulia Kazakova

Добрый вечер, помогите, пожалуйста с задачей по сортировке

Написать функцию sort_gradebook(gradebook), принимающую на вход некую ведомость в виде списка, элементами которого являются списки такого вида: [first_name, last_name, grade_1, grade_2, ..., grade_n, final_grade], где first_name — имя студента, last_name — его фамилия, grade_1, ..., grade_n — оценки студента по контрольным от 1 до n (число n — общее число контрольных, оно одинаковое для конкретного gradebook, но заранее не известно), final_grade — итоговая оценка. Функция должна отсортировать gradebook следующим образом (и вернуть его отсортированным):
По итоговой оценке;
При совпадении итоговой оценки — по оценке за первую контрольную;
При совпадении всего предыдущего — по оценке за вторую контрольную;
При совпадении всего предыдущего — по оценке за третью контрольную (и т.д. пока контрольные не закончатся);
При совпадении всех оценок — по фамилии;
При совпадении всех оценок и фамилии — по имени.
Сортировки по оценкам производятся по убыванию, а по фамилии и имени — по возрастанию.
Примеры см. в тестах.
Подсказка. Если при сортировке списка с ключом получаются одинаковые ключи, то порядок следования элементов сохраняется. Ключом может быть не только число или строка, но и список.

test_sort([
['Alice', 'Smith', 2, 3, 4],
['John', 'Smith', 2, 3, 4]
], [
['Alice', 'Smith', 2, 3, 4],
['John', 'Smith', 2, 3, 4]

Yulia Kazakova 15 дней назадСпасибо 0
1 чел.