Как отсортировать список методом `sort()`?

Метод sort() сортирует список "на месте" (in-place). Он имеет два ключевых параметра:
  • key: Функция, применяемая к каждому элементу перед сравнением.
  • reverse: Булево значение. Если True, список сортируется в обратном порядке.
Пример:
my_list.sort(key=len, reverse=True)

Метод sort() в Python используется для сортировки списка in-place, то есть он изменяет сам список, а не создает его копию. Он предлагает несколько способов кастомизации процесса сортировки:

Основные параметры:

  • key: Этот параметр принимает функцию, которая будет применена к каждому элементу списка перед сравнением. Результат этой функции (ее возвращаемое значение) будет использоваться для определения порядка сортировки. Это полезно, если вы хотите сортировать список по сложному критерию (например, по длине строк, по значениям определенного атрибута объектов и т.п.).
  • reverse: Этот параметр принимает булево значение (True или False). Если reverse=True, список будет отсортирован в обратном порядке (от большего к меньшему). По умолчанию, reverse=False, что означает сортировку по возрастанию.

Примеры:

1. Сортировка списка чисел по возрастанию (по умолчанию):

numbers = [3, 1, 4, 1, 5, 9, 2, 6]
numbers.sort()
print(numbers)  # Output: [1, 1, 2, 3, 4, 5, 6, 9]

2. Сортировка списка строк по алфавиту (по умолчанию):

strings = ["banana", "apple", "cherry"]
strings.sort()
print(strings)  # Output: ['apple', 'banana', 'cherry']

3. Сортировка списка чисел по убыванию:

numbers = [3, 1, 4, 1, 5, 9, 2, 6]
numbers.sort(reverse=True)
print(numbers)  # Output: [9, 6, 5, 4, 3, 2, 1, 1]

4. Сортировка списка строк по длине:

strings = ["banana", "apple", "cherry", "a"]
strings.sort(key=len)
print(strings)  # Output: ['a', 'apple', 'banana', 'cherry']

5. Сортировка списка кортежей по второму элементу:

tuples = [(1, 'b'), (2, 'a'), (3, 'c')]
tuples.sort(key=lambda item: item[1])
print(tuples)  # Output: [(2, 'a'), (1, 'b'), (3, 'c')]

Важно: Метод sort() возвращает None, так как он изменяет список непосредственно. Если вам нужна отсортированная копия списка, используйте функцию sorted() (которая создает новый список, не изменяя исходный).

original_list = [3, 1, 4]
sorted_list = sorted(original_list)
print(original_list) # Output: [3, 1, 4] (исходный список не изменился)
print(sorted_list)   # Output: [1, 3, 4] (новый отсортированный список)
0