6. Списки
Список — это очень удобная структура данных, которая умеет хранить разные типы данных. Ее также можно назвать последовательностью данных.
В отличие от словарей у списков есть индексный порядок. Это значит, что каждый элемент в списке имеет индекс, который не поменяется, если его не изменить вручную. В случае других структур, таких как словари, это может быть иначе. Например, у словарей нет индексов для их ключей, поэтому нельзя просто указать на второй или третий элемент, ведь такого порядка не существует. Эту структуру данных стоит воспринимать как мешок перемешанных вещей без конкретного порядка.
Индексация: важно отметить, что индексация списков начинается с 0 (нуля). Это значит, что первый элемент в списке на самом деле является нулевым в мире Python. Об этом очень важно помнить.
Изменяемость: списки являются изменяемым типом, что значит, что можно добавлять или удалять их элементы. Посмотрим на примерах.
Где используется?
Списки — распространенная структура данных в Python. Они используются для самых разных целей.
| Метод | Действие |
|---|---|
| .append() | метод для добавления элементов в список |
| .insert() | для добавления элементов в конкретное место в списке |
| .index() | для получения индекса элемента |
| .clear() | для очистки списка |
| .remove() | для удаления элемента списка |
| .reverse() | чтобы развернуть список в обратном порядке |
| .count() | для подсчета количества элементов в списке |
| sum() | для сложения элементов списка |
| min() | показывает элемент с самым низким значением в списке |
| max() | элемент с самым высоким значением в списке |
Рекомендации по работе со списками
Дальше идет список, включающий значения разных типов. Это отличный пример, демонстрирующий нюансы списков. Посмотрим.
Списковые методы append() и extend(): объяснение на примерах
При работе со списками часто приходится комбинировать данные нескольких списков. Как это делается в Python?
В этой статье мы рассмотрим различные способы комбинирования данных из разных списков. В частности, мы познакомимся с методами append() и extend() и разберем их работу на примерах.
Как в Python используется оператор +
Если вы внимательно прочтете приведенный выше код, вы заметите следующие вещи:
Использование метода append() в Python
Возьмем наш пример из предыдущего раздела, но теперь попробуем изменить первый список, добавив в него элементы второго.
Мы видим, что list_2 добавился в конец list_1 как отдельный элемент.
Таким образом, длина list_1 в результате операции append() увеличилась на единицу.
Но что, если мы хотим добавить в list_1 не список list_2 целиком, как отдельный элемент, а все элементы этого списка? Мы рассмотрим, как это делается, в следующем разделе.
Использование метода extend() в Python
Итак, мы добавили все элементы второго списка в первый — как и хотели.
Есть ли здесь какие-то подводные камни?
Допустим, мы хотим добавить к первому списку не целый список (или любой другой итерируемый объект), а какой-то один элемент. Давайте используем метод append() и добавим к списку list_1 булево значение True.
Метод extend() принимает в качестве аргумента только итерируемые объекты. «Под капотом» extend() перебирает в цикле итерируемый объект и добавляет каждый его элемент к первому списку.
Итерируемый объект — это любой объект, который вы можете перебрать в цикле и получить доступ к каждому отдельному элементу этого объекта. Для использования с extend() годятся списки, множества, кортежи и строки.
Использование методов extend() и append() со строками
Что касается временной сложности этих методов, мы интуитивно догадываемся, что append() имеет постоянное время выполнения, а время выполнения extend() пропорционально зависит от длины итерируемого объекта, который передается в качестве аргумента.
Итоги
Надеемся, эта статья помогла вам разобраться, как использовать методы append() и extend() в коде на Python.
Списки (list). Функции и методы списков
Сегодня я расскажу о таком типе данных, как списки, операциях над ними и методах, о генераторах списков и о применении списков.
Что такое списки?
Чтобы использовать списки, их нужно создать. Создать список можно несколькими способами. Например, можно обработать любой итерируемый объект (например, строку) встроенной функцией list:
Список можно создать и при помощи литерала:
Как видно из примера, список может содержать любое количество любых объектов (в том числе и вложенные списки), или не содержать ничего.
Возможна и более сложная конструкция генератора списков:
Но в сложных случаях лучше пользоваться обычным циклом for для генерации списков.
Функции и методы списков
Создать создали, теперь нужно со списком что-то делать. Для списков доступны основные встроенные функции, а также методы списков.
Таблица «методы списков»
| Метод | Что делает |
|---|---|
| list.append(x) | Добавляет элемент в конец списка |
| list.extend(L) | Расширяет список list, добавляя в конец все элементы списка L |
| list.insert(i, x) | Вставляет на i-ый элемент значение x |
| list.remove(x) | Удаляет первый элемент в списке, имеющий значение x. ValueError, если такого элемента не существует |
| list.pop([i]) | Удаляет i-ый элемент и возвращает его. Если индекс не указан, удаляется последний элемент |
| list.index(x, [start [, end]]) | Возвращает положение первого элемента со значением x (при этом поиск ведется от start до end) |
| list.count(x) | Возвращает количество элементов со значением x |
| list.sort(a append python что это) | Сортирует список на основе функции |
| list.reverse() | Разворачивает список |
| list.copy() | Поверхностная копия списка |
| list.clear() | Очищает список |
Нужно отметить, что методы списков, в отличие от строковых методов, изменяют сам список, а потому результат выполнения не нужно записывать в эту переменную.
И, напоследок, примеры работы со списками:
Изредка, для увеличения производительности, списки заменяют гораздо менее гибкими массивами (хотя в таких случаях обычно используют сторонние библиотеки, например NumPy).