Python List Extend: Как добавить несколько элементов в список
Last updated
Last updated
В этом руководстве вы узнаете, как использовать метод расширения списка в Python, который позволяет добавлять в список сразу несколько элементов. Метод .extend()
в Python очень похож на метод .append()
, но позволяет добавлять в список сразу несколько элементов. Вы научитесь использовать метод расширения в Python для добавления в список одного или нескольких элементов, включая элементы из других списков, кортежей и другого.
К концу этого руководства вы научитесь:
Как работает метод расширения списка Python
Как добавить один или несколько элементов в список с помощью метода расширения
Сравнение этого метода с различными способами добавления элементов в список Python
Сравнение производительности различных методов для больших списков
Оглавление
Метод extend()
в Python принимает все элементы другого итерируемого объекта (такого как список, кортеж, строка) и добавляет их в конец списка. Это дает ему ключевое преимущество перед методом .append()
, который может добавить в список только один элемент.
Давайте рассмотрим несколько ключевых особенностей метода .extend()
в Python:
Метод принимает в качестве параметра итерируемый объект, такой как список, кортеж или строка.
Метод изменяет исходный список, но ничего не возвращает.
Давайте изучим синтаксис метода .extend()
для списка в Python:
Операция происходит на месте, что означает, что вам не нужно переназначать исходный список сам на себя. Если вы привыкли к необходимости переназначать элементы сами на себя, адаптация к этому может занять некоторое время.
Самый простой способ добавить несколько элементов в список Python - это использовать метод .extend()
, который принимает список элементов и добавляет каждый элемент в список. Операция происходит на месте, поэтому вам не нужно переназначать список.
Теперь, когда вы поняли, как работает метод, давайте рассмотрим пример. Начнем с двух списков и добавим один к другому.
Мы видим, что каждый элемент добавляется последовательно в список, который расширяется. Ниже приведенное изображение немного подробнее разбирает это:
Мы видим, что каждый элемент в списке добавлен в исходном порядке. Как вы узнаете позже, использование метода .extend()
является самым быстрым способом добавить несколько элементов в список.
Теперь, когда вы поняли, как работает метод, давайте рассмотрим некоторые его особенности. Когда мы хотим добавить один элемент в наш список с помощью метода .extend()
, нам нужно быть внимательными к тому, как мы это делаем.
Давайте сначала рассмотрим, как добавить одно число к нашему списку:
Это вызывает TypeError
, поскольку метод .extend()
ожидает объект-итерируемый. Чтобы добавить один элемент, нам нужно создать его в виде списка, кортежа или другого объекта итерируемого типа. Давайте посмотрим, как мы можем добавить один элемент в метод .extend()
Мы видим, что при передаче списка, содержащего только один элемент, метод работает как ожидается.
Давайте теперь рассмотрим другой пример, где у нас есть список строк. Мы можем попытаться добавить к нему еще одну строку с использованием метода .extend()
Мы можем видеть, что мы действительно не получили то, что хотели! Хотя метод не вызвал TypeError
, он добавил каждую букву отдельно. Это произошло потому что строка является итерируемым объектом, это означает, что Python интерпретировал наше желание итерировать по строке и добавлять каждую букву по отдельности.
Чтобы добавить строку как единственный элемент, ее необходимо передать в список или другой итерируемый контейнер.
В следующих разделах вы узнаете о различии между методом .extend()
в Python и другими популярными способами добавления элементов в список.
Давайте сравним эти два метода:
Мы видим, что при попытке добавить несколько элементов в список с помощью .append()
, все элементы добавляются как единый список.
Чтобы иметь возможность добавлять каждый элемент отдельно с использованием метода .append()
, нам нужно будет использовать цикл for.
Еще один распространенный способ добавления элементов в конец списка в 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 (добавить в начале)
Метод списка в Python также добавляет элемент в конец списка. Однако, он добавляет только один элемент за раз. В то время как метод .extend()
не сработал, когда мы пытались добавить только один элемент, метод .append()
будет работать неожиданно, если мы попытаемся добавить список элементов.
Мы также можем сократить это, используя следующим образом: