Простой Python. Современный стиль программирования (Любанович) - страница 37

Удаление элемента по значению с помощью функции 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


Если вы часто проверяете наличие элемента в списке и вас не волнует порядок элементов,··то для хранения и поиска уникальных значений гораздо лучше подойдет множество. О множествах мы поговорим чуть позже в этой главе.