Python List Extend: Как добавить несколько элементов в список
В этом руководстве вы узнаете, как использовать метод расширения списка в Python, который позволяет добавлять в список сразу несколько элементов. Метод .extend()
в Python очень похож на метод .append()
, но позволяет добавлять в список сразу несколько элементов. Вы научитесь использовать метод расширения в Python для добавления в список одного или нескольких элементов, включая элементы из других списков, кортежей и другого.
К концу этого руководства вы научитесь:
Как работает метод расширения списка Python
Как добавить один или несколько элементов в список с помощью метода расширения
Сравнение этого метода с различными способами добавления элементов в список Python
Сравнение производительности различных методов для больших списков
Оглавление
Понимание метода расширения списка Python
Метод extend()
в Python принимает все элементы другого итерируемого объекта (такого как список, кортеж, строка) и добавляет их в конец списка. Это дает ему ключевое преимущество перед методом .append()
, который может добавить в список только один элемент.
Давайте рассмотрим несколько ключевых особенностей метода .extend()
в Python:
Метод принимает в качестве параметра итерируемый объект, такой как список, кортеж или строка.
Метод изменяет исходный список, но ничего не возвращает.
Давайте изучим синтаксис метода .extend()
для списка в Python:
Операция происходит на месте, что означает, что вам не нужно переназначать исходный список сам на себя. Если вы привыкли к необходимости переназначать элементы сами на себя, адаптация к этому может занять некоторое время.
Как добавить несколько элементов в список в Python?
Самый простой способ добавить несколько элементов в список Python - это использовать метод .extend()
, который принимает список элементов и добавляет каждый элемент в список. Операция происходит на месте, поэтому вам не нужно переназначать список.
Теперь, когда вы поняли, как работает метод, давайте рассмотрим пример. Начнем с двух списков и добавим один к другому.
Мы видим, что каждый элемент добавляется последовательно в список, который расширяется. Ниже приведенное изображение немного подробнее разбирает это:
Мы видим, что каждый элемент в списке добавлен в исходном порядке. Как вы узнаете позже, использование метода .extend()
является самым быстрым способом добавить несколько элементов в список.
Расширение Списка Python Одним Элементом
Теперь, когда вы поняли, как работает метод, давайте рассмотрим некоторые его особенности. Когда мы хотим добавить один элемент в наш список с помощью метода .extend()
, нам нужно быть внимательными к тому, как мы это делаем.
Давайте сначала рассмотрим, как добавить одно число к нашему списку:
Это вызывает TypeError
, поскольку метод .extend()
ожидает объект-итерируемый. Чтобы добавить один элемент, нам нужно создать его в виде списка, кортежа или другого объекта итерируемого типа. Давайте посмотрим, как мы можем добавить один элемент в метод .extend()
Мы видим, что при передаче списка, содержащего только один элемент, метод работает как ожидается.
Давайте теперь рассмотрим другой пример, где у нас есть список строк. Мы можем попытаться добавить к нему еще одну строку с использованием метода .extend()
Мы можем видеть, что мы действительно не получили то, что хотели! Хотя метод не вызвал TypeError
, он добавил каждую букву отдельно. Это произошло потому что строка является итерируемым объектом, это означает, что Python интерпретировал наше желание итерировать по строке и добавлять каждую букву по отдельности.
Чтобы добавить строку как единственный элемент, ее необходимо передать в список или другой итерируемый контейнер.
В следующих разделах вы узнаете о различии между методом .extend()
в Python и другими популярными способами добавления элементов в список.
Расширение списка в Python (Extend) по сравнению с Добавлением элемента (Append)
Метод .append() списка в Python также добавляет элемент в конец списка. Однако, он добавляет только один элемент за раз. В то время как метод .extend()
не сработал, когда мы пытались добавить только один элемент, метод .append()
будет работать неожиданно, если мы попытаемся добавить список элементов.
Давайте сравним эти два метода:
Мы видим, что при попытке добавить несколько элементов в список с помощью .append()
, все элементы добавляются как единый список.
Чтобы иметь возможность добавлять каждый элемент отдельно с использованием метода .append()
, нам нужно будет использовать цикл for.
Расширение списка в Python с помощью метода extend в сравнении с оператором сложения (+)
Еще один распространенный способ добавления элементов в конец списка в Python - использование оператора +
. Этот метод объединяет два списка. Поскольку операция происходит не на месте, она создает новый объект, который объединяет два списка.
Давайте посмотрим на пример того, как это работает:
Мы также можем сократить это, используя оператор увеличенного присваивания следующим образом:
В следующем разделе мы рассмотрим производительность этих различных методов.
Сравнение производительности добавления элементов в список в Python
Мы можем измерять время выполнения различных методов, используя Jupyter Notebooks и команду %%timeit
. В таблице ниже представлены различные методы и их время выполнения при попытке конкатенации списка из миллиона элементов:
.extend()
20.4 ms ± 502 µs per loop
.append()
52.5 ms ± 466 µs per loop
+
1min 21s ± 4.19 s per loop
Мы можем видеть, что метод .extend()
является явным лидером, в то время как использование метода .append()
занимает почти первое место. Тем временем, использование метода +
показывает худшие результаты среди всех для больших списков.
Заключение
В этом учебном пособии вы научились использовать метод .extend()
в Python для добавления нескольких элементов в список. Вы узнали, как работает этот метод и как его можно использовать для расширения списков с помощью других итерируемых объектов. Вы узнали о некоторых особенностях использования этого метода, например, при добавлении одиночных элементов в список.
Вы узнали, как метод .extend()
сравнивается с другими способами добавления элементов в конец списка, включая метод .append()
и использование оператора +
. Наконец, мы изучили производительность различных методов, указывая на то, что при работе с большими списками метод .extend()
является явным победителем.
Дополнительные ресурсы
Чтобы узнать больше о связанных темах, ознакомьтесь со следующими статьями ниже:
Списки Python: полный обзор
Python: объединить списки – объединить списки (8 способов)
Как добавлять к спискам в Python — 4 простых метода!
Добавить к списку Python (добавить в начале)
Last updated