Удаление элемента по значению с помощью функции remove()
Если вы не знаете точно или вам все равно, в какой позиции находится элемент, используйте функцию remove(), чтобы удалить его по значению. Прощай, Гуммо:
>>>> marxes = ['Groucho', 'Chico', 'Harpo', 'Gummo', 'Zeppo']
>>>> marxes.remove('Gummo')
>>>> marxes
>['Groucho', 'Chico', 'Harpo', 'Zeppo']
Получение заданного элемента и его удаление с помощью функции pop()
Вы можете получить элемент из списка и в то же время удалить его с помощью функции pop(). Если вызовете функцию pop() и укажете некоторое смещение, она возвратит элемент, находящийся в заданной позиции; если аргумент не указан, будет использовано значение –1. Так, вызов pop(0) вернет головной (начальный) элемент списка, а вызов pop() или pop(-1) — хвостовой (конечный) элемент, как показано далее:
>>>> marxes = ['Groucho', 'Chico', 'Harpo', 'Zeppo']
>>>> marxes.pop()
>'Zeppo'
>>>> marxes
>['Groucho', 'Chico', 'Harpo']
>>>> marxes.pop(1)
>'Chico'
>>>> marxes
>['Groucho', 'Harpo']
Пришло время компьютерного жаргона! Не волнуйтесь, этого не будет на итоговом экзамене. Если вы используете функцию append(), чтобы добавить новые элементы в конец списка, и функцию pop(), чтобы удалить из конца этого же списка, вы реализуете структуру данных, известную как LIFO (last in, first out — «последним пришел — первым ушел»). Такую структуру чаще называют стеком. Вызов pop(0) создаст очередь FIFO (first in first out — «первым пришел — первым ушел»). Эти структуры могут оказаться полезными, если вы хотите собирать данные по мере их поступления и работать либо с самыми старыми (FIFO), либо с самыми новыми (LIFO).
Определение смещения элемента по значению с помощью функции index()
Если вы хотите узнать смещение элемента в списке по его значению, используйте функцию index():
>>>> marxes = ['Groucho', 'Chico', 'Harpo', 'Zeppo']
>>>> marxes.index('Chico')
>1
Проверка на наличие элемента в списке с помощью оператора in
В Python наличие элемента в списке проверяется с помощью оператора in:
>>>> marxes = ['Groucho', 'Chico', 'Harpo', 'Zeppo']
>>>> 'Groucho' in marxes
>True
>>>> 'Bob' in marxes
>False
Одно и то же значение может встретиться больше одного раза. До тех пор пока оно находится в списке хотя бы в единственном экземпляре, оператор in будет возвращать значение True:
>>>> words = ['a', 'deer', 'a' 'female', 'deer']
>>>> 'deer' in words
>True
Если вы часто проверяете наличие элемента в списке и вас не волнует порядок элементов,··то для хранения и поиска уникальных значений гораздо лучше подойдет множество. О множествах мы поговорим чуть позже в этой главе.