Курс Python → Сортировка и обратный порядок
Sorted метод в Python всегда возвращает отсортированный список. Однако, при сравнении списков и кортежей, результат всегда будет False. Это происходит из-за того, что списки и кортежи сравниваются по ссылке на объект, а не по их содержимому. Поэтому, даже если два списка или кортежа имеют одинаковые элементы, они все равно будут считаться разными объектами.
В отличие от sorted, метод reversed возвращает итератор, а не список. Почему так происходит? Дело в том, что сортировка требует изменения итератора на месте или использования дополнительного контейнера, такого как список. В то время как реверсирование может просто работать путем повторения от последнего индекса к первому без создания новых объектов.
numbers = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3]
sorted_numbers = sorted(numbers)
print(sorted_numbers) # Output: [1, 1, 2, 3, 3, 4, 5, 5, 6, 9]
reversed_numbers = reversed(numbers)
print(list(reversed_numbers)) # Output: [3, 5, 6, 2, 9, 5, 1, 4, 1, 3]
Используя sorted, мы можем получить отсортированный список, который можно использовать для дальнейшей обработки данных. С другой стороны, reversed возвращает итератор, который можно преобразовать в список для получения элементов в обратном порядке. Оба метода полезны в различных сценариях и помогают упорядочивать данные в Python.
Другие уроки курса "Python"
- Оператор объединения словарей
- Переопределение метода __rshift__
- Мониторинг памяти с Pympler
- Транспонирование 2D-массива с помощью zip
- Различия символов в Python
- Виртуальное окружение Python
- Поиск самого частого элемента
- UserList в Python: Описание и примеры использования
- Функции высшего порядка в Python
- Работа с массивами в Numpy
- Многострочные комментарии в Python
- Списки в Python: синтаксис представления
- Объединение итераторов
- Поиск анаграмм с Counter
- Обработка ошибок в Python
- Работа с геоданными с помощью geopy
- Работа с срезами в Python
- Атрибуты класса и экземпляра
- Возврат нескольких значений
- Тестирование времени с Freezegun
- Отправка HTTP-запросов с User-Agent
- Выход из профиля в Django
- Конкатенация строковых литералов
- Метод invert для побитового отрицания
- Разрешение имен в Python
- Функция rsplit() в Python
- Фильтрация списка от «ложных» значений
- Howdoi — получение ответов из терминала
- Распаковка аргументов в Python
- Декодирование байтов в строку
- Настройка нарезки списков
- split() без разделителя
- Декораторы в Python
- Удаление дубликатов из списка с помощью dict.fromkeys
- JSON в Python: модуль, dump, dumps, load
- Рациональные числа в Python
- Метод Enumerate() для списков
- Переопределение оператора % для объектов
- Декораторы для регистрации функций
- Основы работы с os
- Профилирование с cProfile
- Искажение имен в Python
- Метод ifloordiv для пользовательских классов
- Работа со слайсами















