Как использовать методы списка в Python 3

Вступление

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

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

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

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

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

list.append ()

Метод list.append(x)добавит элемент ( x) в конец списка. Мы начнем с списка наших рыб, которые разбросаны по всему аквариуму.

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

Этот список состоит из 4 строковых элементов, а их индексные номера варьируются от 'barracuda'0 до 'eel'индекса 3.

Сегодня в аквариум появилась новая рыба, и мы хотели бы добавить эту рыбу в наш список. Мы передадим строку нашего нового типа рыбы 'flounder'в list.append()метод, а затем распечатаем наш измененный список, чтобы подтвердить, что элемент был добавлен.

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

Теперь у нас есть список из 5 строковых элементов, которые заканчиваются элементом, который мы передали .append()функции.

list.insert ()

list.insert(i,x)Метод принимает два аргумента, с iтем положением индекса вы хотели бы добавить элемент, и xбудучи сам элементом.

Наш аквариум приобрел еще одну новую рыбу, анчоусы. Возможно, вы заметили, что пока список fishнаходится в алфавитном порядке. Из-за этого мы не хотим просто добавлять строку 'anchovy'в конец fishс помощью list.append()функции. Вместо этого мы будем использовать list.insert()для добавления 'anchovy'в начало этого списка в позиции индекса 0:

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

В этом случае мы добавили строковый элемент в начало списка. Каждый из последующих элементов теперь будет иметь новый номер индекса, поскольку все они перемещаются вниз. Следовательно, 'barracuda'будет в индексе 1, 'cod'будет в индексе 2, а 'flounder'— последний элемент — будет в индексе 5.

Если в этот момент, мы чего ласточки в аквариум , и мы хотели сохранить алфавитный порядок , основанный на списке выше, мы бы поставить пункт на индекс 3fish.insert(3,'damselfish').

list.extend ()

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

Наш аквариум приветствует четырех новых рыб из другого аквариума, который закрывается. У нас есть эти рыбы вместе в списке more_fish:

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

Теперь мы добавим элементы из списка more_fishв список fishи распечатаем список, чтобы обеспечить включение второго списка:

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

На данный момент список fishсостоит из 10 пунктов.

list.remove ()

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

Группа местных ученых-исследователей посетила аквариум. Они проводят исследования по поцелуям гурами видов рыбы. Они просили нас одолжить нам поцелуи gourami, поэтому мы хотели бы удалить 'kissing gourami'элемент из списка, чтобы отразить это изменение:

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

После использования list.remove()метода наш список больше не имеет этого 'kissing gourami'элемента.

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

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

Имейте в виду, что list.remove()удалите только первый экземпляр предмета, который вы передадите ему, поэтому, если бы у нас было два поцелуя gouramis в нашем аквариуме, и мы только одолжили его ученым, мы могли бы использовать одну fish.remove('kissing gourami')и ту же конструкцию и все еще иметь второй поцелуй гурами в нашем списке.

list.pop ()

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

Наш дьявольский луч стал слишком большим для нашего аквариума, и, к счастью, аквариум в нескольких городах может удовлетворить потребности луча. Мы будем использовать .pop()и указывать номер индекса ( 3) строкового элемента, 'devil ray'чтобы удалить элемент из нашего списка, и, возвратив его, мы подтвердим, что мы удаляем правильный элемент.

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

Используя .pop()метод, мы смогли вернуться и удалить 'devil ray'из списка fish.

Если бы мы не передали никакие параметры этому методу и не выполнили fish.pop(), последний элемент 'ide'будет возвращен, а затем удален из списка.

list.index ()

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

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

Хотя список fishне очень длинный, мы все же можем определить позицию индекса элемента 'herring'без учета. Индекс каждого элемента очень важен, чтобы знать, чтобы мы могли эффективно манипулировать списками.

Мы получили сообщение об ошибке , если мы Указывать значение .index()и не такое значение не существует в данном списке: ValueError: 'x' is not in list.

list.copy ()

Когда мы работаем со списком и можем манипулировать им несколькими способами, оставаясь неизменным исходный список, мы можем использовать его list.copy()для создания копии списка.

Мы передадим возвращаемое значение fish.copy()переменной fish_2, а затем распечатаем значение, fish_2чтобы убедиться, что это список с теми же элементами, что и fish.

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

На данный момент оба fishи fish_2являются эквивалентными списками.

list.reverse ()

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

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

После использования .reverse()метода наш список начинается с элемента 'ide', который был в конце нашего списка, и заканчивается 'anchovy', который был в начале списка.

list.count ()

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

Мы будем использовать наш текущий список, чтобы подсчитать количество показа элементов 'goby':

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

Поскольку строка 'goby'появляется только один раз, номер 1 возвращается, когда мы используем этот .count()метод.

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

Поскольку у 1-летней рыбы есть особые диетические потребности, мы собираемся подсчитать, сколько у нас 1-летней рыбы:

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

Целое число 1встречается в списке fish_ages3 раза, поэтому, когда мы используем .count()метод, возвращается число 3.

list.sort ()

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

Точно так же list.count()list.sort()можно сделать более очевидным, сколько из определенного целочисленного значения у нас есть, и оно также может помещать несортированный список чисел в числовой порядок.

Давайте используем целочисленный список, fish_agesчтобы увидеть .sort()метод в действии:

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

При использовании .sort()с fish_agesцелыми значениями возвращаются по порядку. На практике, поскольку эти возрасты соответствуют конкретным рыбам, вы, скорее всего, захотите сделать копию исходного списка до его сортировки.

list.clear ()

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

Местное правительство решило взять наш аквариум, сделав его общественным пространством для людей в нашем городе. Поскольку мы больше не работаем над аквариумом, нам больше не нужно вести инвентаризацию рыбы, поэтому давайте очистим fishсписок:

fish.clear()
print(fish)
Output
[]

Мы получаем квадратные скобки в качестве выходных данных после использования .clear()функции fish, сообщая нам, что список теперь свободен от всех элементов.

Заключение

В качестве изменяемой или изменяемой упорядоченной последовательности элементов списки представляют собой очень гибкие структуры данных в Python. Методы списка позволяют нам работать со списками сложным образом. Мы можем комбинировать методы с другими способами изменения списков , чтобы иметь полный набор инструментов для эффективного использования списков в наших программах. Здесь вы можете прочитать о списках, чтобы создавать списки на основе существующих списков.

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *