Упорядочение списка в Python
Очень часто списки хранятся в непредсказуемом порядке, так как большинство списков заполняются пользователями и не всегда находятся под вашим контролем. Это неизбежно, но иногда требуется выполнить сортировку списка и вывести его в нужно формате. Поэтому Python предоставляет программистам несколько способов упорядочения списков в зависимости от ситуации.
Постоянная сортировка списка методом .sort()
Метод .sort() позволяет произвести сортировку списка в алфавитном порядке и наоборот. Чтобы отсортировать список в обратном порядке добавьте в метод .sort() параметр reverse=True. После сортировки списка таким методом, вернуть исходное значение списка уже будет нельзя.
# Список фамилий пользователей users = ['Иванов', 'Сидоров', 'Петров', 'Иванов'] print(users) # Выполняем сортировку списка от А до Я users.sort() print(users) # Выполняем сортировку списка от Я до А users.sort(reverse=True) print(users) # Финальный результат в консоли ['Иванов', 'Сидоров', 'Петров', 'Иванов'] - Исходный список ['Иванов', 'Иванов', 'Петров', 'Сидоров'] - Сортировка от А до Я ['Сидоров', 'Петров', 'Иванов', 'Иванов'] - Сортировка от Я до А
Временная сортировка списка методом .sorted()
Чтобы сохранить исходный порядок в списке, но временно вывести в отсортированном виде от А до Я, можно воспользоваться методом .sorted(). Чтобы отсортировать в обратном порядке добавьте параметр reverse=True.
# Список фамилий пользователей users = ['Иванов', 'Сидоров', 'Петров', 'Иванов'] print(users) # Выполняем сортировку списка от А до Я print(sorted(users)) # Выполняем сортировку списка от Я до А print(sorted(users, reverse=True)) # Финальный результат в консоли ['Иванов', 'Сидоров', 'Петров', 'Иванов'] - Исходный список ['Иванов', 'Иванов', 'Петров', 'Сидоров'] - Сортировка от А до Я ['Сидоров', 'Петров', 'Иванов', 'Иванов'] - Сортировка от Я до А
Вывод списка в обратном порядке
Для того, чтобы вывести список в обратном порядке, можно использовать метод .reverse().
Обратите внимание: метод .reverse() не сортирует список, а просто выводит в обратном порядке.
# Список фамилий пользователей users = ['Иванов', 'Сидоров', 'Петров', 'Иванов'] print(users) # Выполняем перевод списка в обратном порядке users.reverse() # Выводим список в обратном порядке print(users) # Финальный результат в консоли ['Иванов', 'Сидоров', 'Петров', 'Иванов'] - Исходный список ['Иванов', 'Петров', 'Сидоров', 'Иванов'] - Список в обратном порядке