- В задачах программирования часто требуется упорядочить не простые числа, а записи (структуры), содержащие несколько полей — например, фамилию, класс, баллы и т. д. В таком случае сортировка выполняется не по одному признаку, а по нескольким критериям (например, сначала по классу, затем по баллам и фамилии).
- Сортировка по нескольким критериям выполняется с помощью функции ключа, которая определяет порядок элементов. В стандартной библиотеке Python для этого используется метод sort().
- Порядок сортировки задаётся с помощью параметра key, который определяет, по каким признакам сравниваются элементы.
- Пример. Нужно отсортировать список учеников: по классу (возрастание), по баллам (убывание), по ФИО (по алфавиту).
Структура для хранения данных об ученике | Функция сравнения |
|---|---|
class Pupil: def __init__(self, fio, self.fio = fio # Фамилия self.classNum = classNum self.ball = ball # Баллы | def Compare (p): return (p.classNum, - # 2. Если класс одинаковый # 3. Если баллы равны pupils.sort (key = Compare) |