Step 5 (S-14680)

From Stepik Wiki
Jump to: navigation, search

Step on Stepik: https://stepik.org/lesson/3368/step/5

S-14680-1.png

Продолжим рассматривать пример со списком студентов. Пусть теперь мы хотим вывести всех студентов в алфавитном порядке, фактически нам нужно упорядочить наши наш список по возрастанию.

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

S-14680-2.png

При этом изначальный список students не изменяется. Другой способ получить отсортированный набор значений. это использовать метод списка sort. Он изменяет порядок следования элементов списка таким образом, чтобы они были отсортированы по возрастанию.

S-14680-3.png

В ситуации, когда нам не нужно упорядочивать весь список, а необходимо просто узнать имя первого или последнего студента, мы можем использовать функции min и max. Они возвращают минимальное и максимальное значение в списке, соответственно.

S-14680-4.png

Есть обязательное условие применения этих функций и методов - все элементы должны быть сравнимы. Например, весьма проблематично ответить на вопрос: какой из двух объектов больше или меньше - строка 'Sasha' или число 5? Попытка сравнить эти объекты выдаст ошибку. Если список состоит из однотипных сравниваемых объектов, например из целых чисел, функция max вернет большее из них.

S-14680-5.png

Если у нас есть список мы можем получить элементы списка в противоположном порядке.

S-14680-7.png

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

S-14680-6.png

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

S-14680-8.png

И наконец, список студентов в противоположном порядке можно получить с помощью среза:

S-14680-9.png

при таком подходе начальный список остается без изменений.