Методы списков в Python 3

В Python 3 есть ряд встроенных структур данных, включая списки. Структуры данных позволяют систематизировать, хранить и извлекать данные, а также управлять ими.

Примечание: Для выполнения руководства нужно знать основы Python 3, типы данных и в частности особенности списков в Python. Больше информации можно найти в руководстве Работа со списками в Python 3.

В данном руководстве речь пойдёт о встроенных методах списков: удалении элементов из списка, расширении, разворачивании, сортировке и многом другом.

При работе со списками важно помнить, что это изменяемый тип данных (в отличие от строк). Метод изменяет оригинальный список, а не его копию.

Для примера представим, что у вас есть аквариум, в котором постоянно меняется набор рыб

Метод list.append()

Метод list.append(x) вставляет элемент (x) в конец списка. Предположим, у нас есть такой список рыб в аквариуме:

fish = ['barracuda','cod','devil ray','eel']

Данный список представлен 4 элементами. Диапазон индексов списка: от 0 (‘barracuda’) до 3 (‘eel’).

Допустим, в аквариуме появилась новая рыба (например, ‘flounder’), её нужно добавить в список. Используйте метод list.append(x), где list – название списка, а х – новый элемент. fish.append(‘flounder’)

print(fish)
['barracuda', 'cod', 'devil ray', 'eel', 'flounder']

Итак, теперь в списке 5 элементов. Новый элемент добавлен в конец списка.

Метод list.insert()

Аргументы метода list.insert(i,x):

  • i – индекс, который нужно присвоить новому элементу.
  • x – новый элемент, который нужно вставить в список.

В аквариуме появилась ещё одна рыба (например, anchovy). Обратите внимание: на данный момент элементы списка fish указаны в алфавитном порядке. Потому элемент ‘anchovy’ нужно добавить не в конец, а в начало списка. Предыдущий метод не подходит – он добавляет элементы только в конец списка. Используйте метод list.insert():

fish.insert(0,'anchovy')
print(fish)
['anchovy', 'barracuda', 'cod', 'devil ray', 'eel', 'flounder']

Теперь индексы всех элементов обновятся (‘anchovy’ – 0, ‘barracuda’ – 1, ‘flounder’ – 5).

Попробуйте добавить в список ещё один элемент, damselfish. Соблюдая алфавитный порядок, добавить элемент нужно под индексом 3.

fish.insert(3,'damselfish')

Метод list.extend()

Чтобы объединить два списка, используйте метод list.extend(L), где L – второй список, элементы которого нужно добавить в конец первого.

Предположим, вы решили объединить два аквариума, в результате чего в аквариуме появляется 4 новые рыбы. Все они указаны в списке more_fish.

more_fish = ['goby','herring','ide','kissing gourami']

Теперь нужно добавить элементы списка more_fish в список fish.

fish.extend(more_fish)
print(fish)
['anchovy', 'barracuda', 'cod', 'devil ray', 'eel', 'flounder', 'goby', 'herring', 'ide', 'kissing gourami']

Итак, список fish состоит из 10 элементов.

Метод list.remove()

Метод list.remove(х) позволяет удалить из списка определённый компонент.

К примеру, вы подарили одну рыбку (kissing gourami). Этот элемент нужно удалить из списка:

fish.remove('kissing gourami')
print(fish)
['anchovy', 'barracuda', 'cod', 'devil ray', 'eel', 'flounder', 'goby', 'herring', 'ide']

Если в методе list.remove() вы укажете несуществующий элемент, вы получите сообщение об ошибке:

ValueError: list.remove(x): x not in list

Обратите внимание: метод list.remove() удаляет только первый совпавший элемент. То есть если в списке находятся два элемента kissing gourami, то метод fish.remove(‘kissing gourami’) удалит только один такой элемент, а второй останется в списке.

Метод list.pop()

Метод list.pop([i]) удаляет из списка элемент с индексом i и выводит его. Квадратные скобки указывают на то, что этот параметр опционален. Индекс можно не указывать. В таком случае метод удалит и выведет последний элемент списка.

К примеру, вы решили продать одну рыбу (devil ray) владельцу большого аквариума. Чтобы удалить её из списка, укажите индекс в методе .pop(). Метод выведет элемент с указанным индексом, и вы сможете убедиться, что удаляете правильный элемент.

print(fish.pop(3))
print(fish)
devil ray
['anchovy', 'barracuda', 'cod', 'eel', 'flounder', 'goby', 'herring', 'ide']

Если вы не укажете индекс элемента, метод удалит последний элемент (‘ide’).

Индекс list.index()

Когда списки становятся объемными, становится сложно индексировать их самостоятельно. Метод list.index(x) возвращает элемента со значением х. Если в списке несколько элементов со значением х, метод возвращает индекс первого найденного в списке элемента с таким значением.

print(fish)
print(fish.index('herring'))
['anchovy', 'barracuda', 'cod', 'eel', 'flounder', 'goby', 'herring', 'ide'] 6

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

Если в методе .index() вы укажете несуществующий элемент, вы получите сообщение об ошибке:

ValueError: 'x' is not in list.

Метод list.copy()

Чтобы создать копию списка, используйте метод list.copy().

Передайте вывод fish.copy()  в переменную fish_2, а затем отобразите её содержимое:

fish_2 = fish.copy()
print(fish_2)
['anchovy', 'barracuda', 'cod', 'eel', 'flounder', 'goby', 'herring', 'ide']

Теперь у вас есть точная копия списка fish – список fish_2.

Метод list.reverse()

С помощью метода list.reverse() можно развернуть порядок элементов в списке. К примеру, это полезно, если вам удобнее использовать обратный алфавитный порядок вместо традиционного.  Попробуйте развернуть список fish:

fish.reverse()
print(fish)
['ide', 'herring', 'goby', 'flounder', 'eel', 'cod', 'barracuda', 'anchovy']

Метод list.count()

Метод list.count(x) считает, сколько раз в списке повторяется тот или иной элемент. Это полезно, если в длинном списке есть много повторяющихся элементов, и их нужно посчитать.

Например:

print(fish.count('goby'))
1

Строка ‘goby’ появляется в списке всего один раз.

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

Попробуйте узнать, сколько в аквариуме рыб возрастом в 1 год.

fish_ages = [1,2,4,3,2,1,1,2] print(fish_ages.count(1))
3

Число 1 встречается в списке три раза.

Метод list.sort()

Метод list.sort() позволяет сортировать элементы в списке.

Как и list.count(), list.sort() помогает узнать, сколько раз в списке встречается определённый элемент. Кроме того, он упорядочивает остальные элементы списка.

Попробуйте применить метод .sort() к списку fish_ages.

fish_ages.sort()
print(fish_ages)
[1, 1, 1, 2, 2, 2, 3, 4]

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

Метод list.clear()

Если список стал ненужным, его значения можно удалить с помощью метода list.clear().

К примеру, вы раздарили всех рыб из аквариума. Теперь можно очистить список:

fish.clear()
print(fish)
[]

Квадратные скобки в выводе сообщают о том, что теперь список пуст.

Заключение

Список – изменяемая упорядоченная последовательность элементов. Это очень гибкий тип данных.

Читайте также:

Типы данных в Python 3

Работа со списками в Python 3

Tags: ,

Добавить комментарий