Информатика • 9 класс
16

Сортировка массива записей по нескольким критериям (Python)

  • В задачах программирования часто требуется упорядочить не простые числа, а записи (структуры), содержащие несколько полей — например, фамилию, класс, баллы и т. д. В таком случае сортировка выполняется не по одному признаку, а по нескольким критериям (например, сначала по классу, затем по баллам и фамилии).
  • Сортировка по нескольким критериям выполняется с помощью функции ключа, которая определяет порядок элементов. В стандартной библиотеке Python для этого используется метод sort().
  • Порядок сортировки задаётся с помощью параметра key, который определяет, по каким признакам сравниваются элементы.
  • Пример. Нужно отсортировать список учеников: по классу (возрастание), по баллам (убывание), по ФИО (по алфавиту).

Структура для хранения данных об ученике

Функция сравнения
(функция ключа)

class Pupil:

  def __init__(self, fio,
  classNum, ball):

    self.fio = fio # Фамилия

    self.classNum = classNum
    # Номер класса

    self.ball = ball # Баллы

def Compare (p):

  return (p.classNum, -
  p.ball, p.fio)
  # 1. Сортировка
  по классу (по возрастанию)

  # 2. Если класс одинаковый
   — по баллам (по убыванию)

  # 3. Если баллы равны
   — по ФИО (по алфавиту)

pupils.sort (key = Compare)

Было полезно?

Рекомендуем

Вы учитель или ученик?
Познакомьтесь с нашим образовательным онлайн-сервисом с тысячами интерактивных работ
Учителю
Удобно проводить уроки в классе, назначать работы на дом и анализировать результаты всего класса или конкретных учеников
Ученику
Самостоятельно изучать новые и повторять пройденные темы, готовиться по индивидуальной траектории и оценивать результаты на наглядных графиках
Зарегистрироваться в «Облаке знаний»
Логотип облако знаний
+7 (499) 322-07-57
info@oblakoz.ru

Контактный центр

МО, г. Долгопрудный,
Лихачевский проезд, 4, стр. 1

Отдел заботы о пользователях

Политика конфиденциальности

© ООО «Физикон Лаб», 2026

Пользуясь нашим сайтом, вы соглашаетесь с тем, что мы используем cookies 🍪