Step 4 (S-14679)

From Stepik Wiki
Jump to: navigation, search

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

S-14679-1.png

Из списка можно удалять элементы и можно это делать разными способами. Первый способ удаляет элемент по значению. Допустим мы хотим удалить из нашего списка студентов элемент со значением 'Sasha'. Тогда мы можем вызвать метод списка remove и передать ему в качестве параметра наше значение.

S-14679-2.png

В результате наш список изменился, значение 'Sasha' было удалено. Метод remove имеет особенность - он удаляет только первое вхождение. Если бы в нашем списке было несколько элементов со значение 'Sasha', было бы удалено только первый.

Второй способ удаляет элемент списка по индексу.

S-14679-3.png

Мы используем ключевое слово del после которого указываем объект, который мы хотим удалить. Если мы укажем не существующий индекс программа завершится сообщением об ошибке. Аналогично для метода remove - если мы укажем несуществующее значение, то получим ошибку.

S-14679-4.png

Чтобы обойти эту проблему, нам нужно сначала проверить - есть ли элемент в списке, а только после этого удалять его. Как можно проверить наличие элемента в списке? Для этого используется ключевое слово in. Конструкция выглядит следующим образом: справа от ключевого слова указываем наш список, а слева - искомый элемент. Эта выражение вернет значение булевого типа - True или False, в зависимости от того, найден элемент или нет.

S-14679-5.png

Существует конструкция с not in, возвращает истину, если искомый объект отсутствует в списке.

S-14679-6.png

В некотором смысле эта конструкция является "синтаксическим сахаром", потому что можно было записать:

S-14679-7.png

Существует второй способ определить наличие элемента в списке. Для этого используется метод списка - index. В качестве параметра он принимает некоторое значение, а возвращает целое число - позицию на которой стоит элемент с искомым значением (если таких элементов несколько - индекс первого из них). В случае если мы попробуем получить индекс несуществующего значения, программа прервется сообщением об ошибке.

S-14679-8.png