Эффективная сортировка данных
Часть раздела 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.
Задание
ЛегкоНапишите программу, которая выполняет следующие задачи по сортировке с использованием функции sorted():
- Отсортируйте список чисел по возрастанию.
- Отсортируйте тот же список чисел по убыванию.
- Отсортируйте список строк в алфавитном порядке.
- Отсортируйте тот же список строк по их длине.
Шпаргалка
Функция 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)В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Logic & Flow
1Изучение переменных
КонстантыМножественное присваиваниеОбмен значениями переменныхПеременные-заполнителиОкругление чиселПриведение к списку4Приложение «Книга контактов»
Показать менюДобавить контакт7Множества. Часть 2
Математические операции. Часть 1Математические операции. Часть 2Повторение — Охота за сокровищамиПодмножества и надмножестваИтерация по множествамПовторение — Трекер турнира10Базовые генераторы списков
СинтаксисСоздание простых списковДобавление условийИспользование агрегации данныхПовторение — Дом списковПовторение — Элементы свободы13Система управления запасами
Обзор проектаДобавление товара2Словари. Часть 1
Что такое словарь?Создание словаряДоступ к значениямИзменение словарейИтоги — Менеджер рецептов5Продвинутое принятие решений
Тернарный операторПроверка вхожденияПроверка идентичностиОшибки отступовПовторение — Фильтр отпусков8Менеджер записей студентов
Обзор проектаДобавить студента11Продвинутые функции
Возврат нескольких значенийLambda-функции. Часть 1Lambda-функции. Часть 2Задача на повторение — Lambda-сортировкаРекурсивные функции. Часть 1Рекурсивные функции. Часть 2Повторение — сумма вложенного списка14Функции высшего порядка
Функция mapФункция filterПовторение — Валидатор emailПовторение — Обработчик чисел3Словари. Часть 2
Методы словарейВложенные словариПроверка наличия ключейПеребор словарей в циклеПовторение: счетчик частоты6Множества. Часть 1
Что такое множество?Основные операцииМетоды множествПовторение — удаление дубликатов9Продвинутая агрегация данных
Использование SumПоиск минимума и максимумаЭффективная сортировка данныхПовторение — Dictionary Sorter