Добавить в начало списка в Python (Вставить в начало)
В этом руководстве вы узнаете, как использовать Python для добавления элементов в начало списка. Хотя в Python есть метод для добавления значений в конец списка, метод добавления в начало отсутствует. В конце этого руководства вы научитесь использовать метод .insert()
и объединять два списка для добавления элементов в начало.
Вы также узнаете, как использовать объект deque
для вставки значений в начало списка. Во многих случаях это предпочтительный метод, так как он значительно более эффективен по памяти по сравнению с другими методами.
Содержание
Проблема с добавлением списка Python
Списки Python являются изменяемым типом контейнеров, что означает, что их можно изменять. Из-за этого может возникнуть соблазн добавить элемент в список. Однако, в зависимости от размера вашего списка, этот процесс может быть чрезвычайно ресурсоемким.
Причина в том, что в начале списка нет "места". Когда вы добавляете элемент в начало списка, Python должен передвинуть все остальные элементы вперед. Позже в этом уроке вы узнаете о структуре данных deque
, которая представляет собой двухстороннюю очередь. В этих объектах deque
элементы могут свободно вставляться в начало или конец.
Использование вставки для добавления к списку Python
Интуитивно понятный способ добавить элемент в начало списка Python - использовать метод insert. Метод .insert()
принимает два параметра:
Индекс позиции для вставки элемента
Добавить элемент.
Давайте рассмотрим пример:
Операция происходит на месте, то есть новый объект создавать не нужно. В следующем примере вы узнаете, как использовать оператор +
для добавления элемента в начало списка.
Использование оператора + для добавления к списку Python
Оператор +
в Python является невероятно универсальным оператором. Когда он используется с двумя списками, два списка объединяются в один, в порядке их появления. Это означает, что когда мы хотим добавить элемент (или несколько элементов) в начало, мы можем создать список, содержащий этот элемент.
Мы затем просто должны применить оператор +
между двумя списками, чтобы объединить их. Давайте рассмотрим другой пример:
Аналогичным образом, мы можем использовать оператор присваивания с увеличением для добавления элемента в начало списка. Разница здесь в том, что нам нужно переназначить к префиксу, а не наоборот. Это демонстрируется ниже:
В следующем разделе вы узнаете, как использовать срезы списков для добавления к началу списка в Python.
Использование среза списка для добавления к списку Python
Этот метод может показаться немного неловким, но он также может быть полезным способом добавить элемент в начало списка. Мы присваиваем список с одним значением срезу [:0]
другого списка. Это заставляет элемент добавляться перед 0 элементом.
Давайте рассмотрим пример:
В заключительном разделе вы узнаете самый эффективный способ добавления элементов в начало списка Python с точки зрения памяти.
Использование Deque для добавления к списку Python
Часть невероятно универсальной библиотеки collections
– это класс deque
. Этот класс представляет собой двухстороннюю очередь, аналогичную стекам или очередям в других языках программирования. Преимущество заключается в том, что он позволяет добавлять элементы слева, не вызывая смещение всех значений в памяти.
Взглянем на пример:
Преимущество этого подхода заметно при работе с большими списками. С меньшими списками вы можете не заметить выгоды, но важно помнить о производительности.
Заключение
В этом уроке вы узнали, как добавлять элементы в начало списка Python. Сначала вы узнали, почему добавление в начало списка может быть проблематичным. Затем вы узнали, как использовать три разных метода списка, включая .insert()
, оператор +
и индексирование списка для добавления в начало списка. Наконец, вы узнали, как использовать объект deque
из коллекций для добавления в начало списка наиболее эффективно с точки зрения использования памяти.
Дополнительные ресурсы
Чтобы узнать больше по смежным темам, ознакомьтесь с ниже приведенными учебниками:
Как добавлять к спискам в Python — 4 простых метода!
Python Defaultdict: обзор и примеры
Как использовать именованные кортежи Python
Last updated