1. Применение сортировки

☰ Теория

Применение сортировки 

В Python есть две функции сортировки: sorted() и sort()

Ключевое отличие между функцией sorted() и методом sort() в Python заключается в том, что метод sort() изменяет исходный список, сортируя его элементы на месте (in-place sorting), тогда как функция sorted() создает новый отсортированный список на основе исходного, не изменяя исходный список.

Поэтому, если вам нужно сохранить исходную последовательность без изменений, следует использовать функцию sorted(). Если же вы не нуждаетесь в оригинальном порядке элементов списка и готовы изменить сам список, используйте метод sort().
 

Примеры использования
Две описанные функции имеют одинаковые параметры, которые помогают записывать правила сортировки. Отличие в указании параметров одно. В функции sorted() первый параметр - это тот список, который мы сортируем.
# Сортировка списка чисел по возрастанию с сохранением результата в новый список
nums = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
sorted_nums = sorted(nums)
print(sorted_nums)

Выполним сортировку списка слов, с использованием метода sort(). Обратите внимание, строки по умолчанию сортируются в лексикографическом порядке (то есть по алфавиту)
# Сортировка списка строк в алфавитном порядке
fruits = ['apple', 'banana', 'cherry', 'date', 'elderberry', 'fig']
sorted_fruits = sorted(fruits)
print(sorted_fruits)
# Результат: ['apple', 'banana', 'cherry', 'date', 'elderberry', 'fig']

Чтобы отсортировать список по убыванию значений, необходимо указать параметр reverse и присвоить ему значение True
# Сортировка списка чисел по убыванию
nums = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
nums.sort(reverse=True)
print(nums)
# Результат: [9, 6, 5, 5, 5, 4, 3, 3, 2, 1, 1]

Для более сложных правил сортировки используется параметр key. Он позволяет задать функцию, которая будет применяться к каждому элементу списка перед его сортировкой. Как результат, сортировка будет производиться на основе значений, возвращаемых этой функцией. Лямбда-функции в Python - это анонимные функции, которые могут быть определены в одной строке. Функция lambda принимает аргументы и возвращает выражение. Их можно использовать в качестве параметра key для функции сортировки.
# Создаем список чисел
numbers = [15, 22, 18, 11, 19, 24]

# Сортируем список по возрастанию с помощью лямбда-функции
sorted_numbers = sorted(numbers, key=lambda x: x % 10)

print(sorted_numbers)
# Результат: [11, 22, 24, 15, 18, 19]

Отсортируем список слов по длине
# Создаем список слов
words = ["apple", "banana", "cherry", "date", "elderberry"]

# Сортируем список по длине слова с помощью лямбда-функции
sorted_words = sorted(words, key=lambda x: len(x))

print(sorted_words)
# Результат: ['date', 'apple', 'banana', 'cherry', 'elderberry']
В Python вы можете определить собственную функцию, которая будет использоваться в качестве значения параметра key для функции сортировки. Это позволяет более гибко настроить сортировку в соответствии с вашими потребностями.
# Создаем список чисел
numbers = [58, 24, 17, 39, 62, 43]

# Функция для получения последней цифры числа
def get_last_digit(number):
    return number % 10

# Сортируем список по последней цифре числа с помощью функции get_last_digit
sorted_numbers = sorted(numbers, key=get_last_digit)

print(sorted_numbers)
# Результат: [58, 39, 62, 43, 24, 17]

Формат входных данных
Программа получает на вход список неотрицательных чисел, записанных в одной строке. 

Формат выходных данных
Выведите данный список по не возрастанию суммы цифр каждого числа.
Примеры
Входные данныеВыходные данные
1 12 32 45 10 11
45 32 12 11 10

Напишите программу
Auto
       

time 1000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
Python9
Комментарий учителя