3.7. Сокращение списка гостей
: только что выяснилось, что новый обеденный стол при-
везти вовремя не успеют и места хватит только для двух гостей.
• Начните с программы из упражнения 3.6. Добавьте команду для вывода сообщения
о том, что на обед приглашаются всего два гостя.
• Используйте метод
pop()
для последовательного удаления гостей из списка до тех
пор, пока в списке не останутся только два человека. Каждый раз, когда из списка
удаляется очередное имя, выведите для этого человека сообщение о том, что вы со-
жалеете об отмене приглашения.
Упорядочение списка
59
• Выведите сообщение для каждого из двух человек, остающихся в списке. Сообще-
ние должно подтверждать, что более раннее приглашение остается в силе.
• Используйте команду
del
для удаления двух последних имен, чтобы список остался
пустым. Выведите список, чтобы убедиться в том, что в конце работы программы
список действительно не содержит ни одного элемента.
Упорядочение списка
Нередко список создается в непредсказуемом порядке, потому что порядок полу-
чения данных от пользователя не всегда находится под вашим контролем. И хотя во
многих случаях такое положение дел неизбежно, часто требуется вывести инфор-
мацию в определенном порядке. В одних случаях требуется сохранить исходный
порядок элементов в списке, в других исходный порядок должен быть изменен.
Python предоставляет в распоряжение программиста несколько разных способов
упорядочения списка в зависимости от ситуации.
Постоянная сортировка списка методом sort()
Метод
sort()
позволяет относительно легко отсортировать список. Предположим,
имеется список машин и вы хотите переупорядочить эти элементы по алфавиту.
Чтобы упростить задачу, предположим, что все значения в списке состоят из сим-
волов нижнего регистра.
cars.py
cars = ['bmw', 'audi', 'toyota', 'subaru']
❶
cars.sort()
print(cars)
Метод
sort()
в точке
осуществляет постоянное изменение порядка элементов
в списке. Названия машин располагаются в алфавитном порядке, и вернуться к ис-
ходному порядку уже не удастся:
['audi', 'bmw', 'subaru', 'toyota']
Список также можно отсортировать в обратном алфавитном порядке; для этого
методу
sort()
следует передать аргумент
reverse=True
. В следующем примере
список сортируется в порядке, обратном алфавитному:
cars = ['bmw', 'audi', 'toyota', 'subaru']
cars.sort(reverse=True)
print(cars)
И снова порядок элементов изменяется на постоянной основе:
['toyota', 'subaru', 'bmw', 'audi']
|