Menu
Coddy logo textTech

Эффективная сортировка данных

Часть раздела Logic & Flow путешествия по Python на Coddy — урок 48 из 78.

Сортировка — это фундаментальная операция в информатике, и Python предлагает мощные встроенные инструменты для эффективной сортировки данных. Основной функцией для сортировки является sorted(), которую можно использовать для сортировки различных типов данных, включая числа, строки и более сложные объекты.

Базовая сортировка:

Функция sorted() принимает итерируемый объект (например, список, кортеж или множество) в качестве аргумента и возвращает новый список, содержащий отсортированные элементы. По умолчанию она выполняет сортировку по возрастанию.

numbers = [3, 1, 4, 1, 5, 9, 2, 6]
sorted_numbers = sorted(numbers)
print(sorted_numbers)
# Вывод: [1, 1, 2, 3, 4, 5, 6, 9]

В этом примере sorted() сортирует список numbers в порядке возрастания.

Обратная сортировка:

Чтобы выполнить сортировку в порядке убывания, вы можете использовать параметр reverse и установить его в значение True.

numbers = [3, 1, 4, 1, 5, 9, 2, 6]
sorted_numbers_desc = sorted(numbers, reverse=True)
print(sorted_numbers_desc)
# Вывод: [9, 6, 5, 4, 3, 2, 1, 1]

Здесь sorted() сортирует список numbers в порядке убывания.

Сортировка строк:

Функция sorted() также может сортировать строки на основе их лексикографического порядка (т. е. порядка, в котором они появились бы в словаре).

words = ["apple", "banana", "cherry"]
sorted_words = sorted(words)
print(sorted_words)
# Вывод: ['apple', 'banana', 'cherry']

В этом примере sorted() сортирует список words в алфавитном порядке.

Пользовательская сортировка с использованием функции key:

Для более сложных задач сортировки вы можете использовать параметр key, чтобы указать функцию, которая определяет порядок сортировки. Функция key применяется к каждому элементу перед сортировкой, и возвращаемые значения используются для сравнения.

words = ["banana", "kiwi", "fig"]
sorted_words_by_length = sorted(words, key=len)
print(sorted_words_by_length)
# Вывод: ['fig', 'kiwi', 'banana']

В этом случае sorted() сортирует список words на основе длины каждого слова, используя функцию len() в качестве key.

challenge icon

Задание

Легко

Напишите программу, которая выполняет следующие задачи по сортировке с использованием функции sorted():

  1. Отсортируйте список чисел по возрастанию.
  2. Отсортируйте тот же список чисел по убыванию.
  3. Отсортируйте список строк в алфавитном порядке.
  4. Отсортируйте тот же список строк по их длине.

Шпаргалка

Функция sorted() сортирует данные и возвращает новый список с отсортированными элементами.

Базовая сортировка (по возрастанию):

numbers = [3, 1, 4, 1, 5, 9, 2, 6]
sorted_numbers = sorted(numbers)
# Output: [1, 1, 2, 3, 4, 5, 6, 9]

Обратная сортировка (по убыванию):

sorted_numbers_desc = sorted(numbers, reverse=True)
# Output: [9, 6, 5, 4, 3, 2, 1, 1]

Сортировка строк по алфавиту:

words = ["apple", "banana", "cherry"]
sorted_words = sorted(words)
# Output: ['apple', 'banana', 'cherry']

Пользовательская сортировка с функцией key:

sorted_words_by_length = sorted(words, key=len)
# Sorts by string length

Попробуйте сами

# Исходные данные
numbers = [5, 3, 8, 1, 2]
words = ["elephant", "cat", "dolphin", "bee"]

# Задача 1: Отсортировать числа по возрастанию
# Задача 2: Отсортировать числа по убыванию
# Задача 3: Отсортировать слова по алфавиту
# Задача 4: Отсортировать слова по длине

# Замените 'pass' своим кодом для каждой задачи
ascending_numbers = None
descending_numbers = None
alphabetical_words = None
length_sorted_words = None

# Вывести результаты
print("Ascending:", ascending_numbers)
print("Descending:", descending_numbers)
print("Alphabetical:", alphabetical_words)
print("By Length:", length_sorted_words)
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Logic & Flow