Сортировка с ключом (key function) в Python, как правило, используется с функциями sorted() и методом .sort() (списков) для определения логики сортировки, отличной от стандартного прямого сравнения элементов.
Основная идея: Вместо того, чтобы сравнивать непосредственно сами элементы списка, сортировка с ключом использует функцию, которая преобразует каждый элемент в значение, используемое для сравнения. Эта функция называется "ключом сортировки".
Как это работает:
sorted() или .sort() принимает необязательный аргумент key. Этот аргумент принимает функцию (обычно lambda-функцию или заранее определенную функцию).key.sorted()) или изменяется (.sort()) список, отсортированный на основе этих ключей.Преимущества:
Примеры:
1. Сортировка списка строк по длине:
words = ["apple", "banana", "kiwi", "orange"]
sorted_words = sorted(words, key=len) # ["kiwi", "apple", "banana", "orange"]2. Сортировка списка чисел по абсолютному значению:
numbers = [-5, 2, -1, 0, 3]
sorted_numbers = sorted(numbers, key=abs) # [0, -1, 2, 3, -5]3. Сортировка списка объектов по атрибуту:
class Person:
    def __init__(self, name, age):
      self.name = name
      self.age = age
  people = [Person("Alice", 30), Person("Bob", 25), Person("Charlie", 35)]
  sorted_people = sorted(people, key=lambda person: person.age) # Сортировка по возрасту
  # Результат: [Bob (25), Alice (30), Charlie (35)]
  Важно помнить: Функция, передаваемая в аргумент key, должна возвращать сравниваемые значения одного типа для всех элементов списка.  Иначе, может возникнуть ошибка TypeError.