Как добавить элемент в список в Python

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

Давайте начнем!

Друзья, подписывайтесь на наш телеграм канал Pythonist. Там еще больше туториалов, задач и книг по Python

Что такое списки в Python? Определение для начинающих

Массив в программировании — это упорядоченный набор элементов, где все элементы должны иметь один и тот же тип данных.

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

Списки, по сути, представляют собой динамические массивы и являются одной из наиболее распространенных и мощных структур данных в Python.

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

Кроме того, элементы, хранящиеся в списке, могут относиться к любому типу данных.

Могут быть списки целых чисел (int), списки чисел с плавающей точкой (float), списки строк (string) и списки данных любых других встроенных типов Python.

Списки более гибкие, чем традиционные массивы. Это означает, что в одном списке может быть несколько различных типов данных.

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

Значения разделяются запятой и заключаются в квадратные скобки [].

Как создавать списки в Python

Чтобы создать новый список, сначала дайте ему имя. Затем добавьте оператор присваивания (=) и пару квадратных скобок. Внутри скобок добавьте значения, которые должны содержаться в списке.

К примеру, это может выглядеть так:

# Создаем новый список имен
names = ["Jimmy", "Timmy", "Kenny", "Lenny"]

# Выводим список в консоль
print(names)

# Результат
# ['Jimmy', 'Timmy', 'Kenny', 'Lenny']
[python_ad_block]

Как индексируются списки в Python

Списки поддерживают порядок элементов.

Каждый элемент имеет собственный порядковый номер — индекс, который можно использовать для доступа к самому элементу.

Индексы в Python (и любом другом современном языке программирования) начинаются с 0 и увеличиваются для каждого элемента в списке.

Например, список, созданный нами ранее, имел 4 значения:

names = ["Jimmy", "Timmy", "Kenny", "Lenny"]
  • Первое значение в списке, «Jimmy», имеет индекс 0.
  • Второе значение в списке, «Timmy», имеет индекс 1.
  • Третье значение в списке, «Kenny», имеет индекс 2.
  • Четвертое значение в списке, «Lenny», имеет индекс 3.

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

Например, если вы хотите получить доступ к элементу с индексом 2, вы должны сделать следующее:

names = ["Jimmy", "Timmy", "Kenny", "Lenny"]

print(names[2])

# Результат
# Kenny

Списки в Python изменяемы

В Python, когда объекты изменяемы, это означает, что их значения могут быть изменены после создания объектов.

Списки являются изменяемыми объектами, поэтому их можно обновлять и изменять после их создания.

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

Вы можете как удалить элементы из существующего списка, так и добавить новые.

Для добавления и удаления элементов есть специальные встроенные методы списков.

Например, для добавления элементов существуют методы .append(), .insert() и .extend().

Для удаления элементов существуют такие методы, как .remove(), .pop() и .pop(index).

Про удаление элементов из списка можно подробнее почитать в статье «Как удалить элемент из списка в Python». Здесь мы сфокусируемся на методах добавления элементов.

Что делает метод .append()?

Метод .append() добавляет дополнительный элемент в конец уже существующего списка.

Общий синтаксис выглядит примерно так:

list_name.append(item)

Давайте разберем это:

  • list_name — это имя вашего списка
  • .append() — это метод списка для добавления элемента в конец list_name
  • item — это отдельный элемент, который вы хотите добавить

При использовании .append() исходный список изменяется. Новый список не создается.

Если вы хотите добавить дополнительное имя в список, созданный ранее, вы должны сделать следующее:

names = ["Jimmy", "Timmy", "Kenny", "Lenny"]

# Добавляем имя Dylan в конец списка
names.append("Dylan")

print(names)

# Результат
# ['Jimmy', 'Timmy', 'Kenny', 'Lenny', 'Dylan']

В чем разница между методами .append() и .insert()?

Разница между этими двумя методами заключается в том, что .append() добавляет элемент в конец списка, тогда как .insert() вставляет элемент на указанную позицию в списке.

Как вы видели в предыдущем разделе, .append() добавит элемент, который вы передаете в качестве аргумента функции, в конец списка.

Но вы можете указать позицию, на которую хотите добавить элемент, если воспользуетесь другим методом добавления — .insert().

Общий синтаксис выглядит следующим образом:

list_name.insert(position,item)

Давайте разбираться:

  • list_name — это имя вашего списка
  • .insert() — это метод для вставки элемента в список
  • position — первый аргумент метода. Это всегда целое число — порядковый номер позиции, на которую вы хотите поместить новый элемент
  • item — второй аргумент метода. Здесь вы указываете новый элемент, который хотите добавить в список.

Предположим, у вас есть следующий список языков программирования:

programming_languages = ["JavaScript", "Java", "C++"]

print(programming_languages)

# Результат
# ['JavaScript', 'Java', 'C++']

Если вы хотите вставить «Python» в начало этого списка, вы должны использовать метод .insert() и указать позицию 0 (помните, что первое значение в списке всегда имеет индекс 0).

programming_languages = ["JavaScript", "Java", "C++"]

programming_languages.insert(0, "Python")

print(programming_languages)

# Результат
# ['Python', 'JavaScript', 'Java', 'C++']

Если бы вы хотели оставить «JavaScript» первым элементом в списке, а затем добавить «Python», нужно было бы указать позицию 1:

programming_languages = ["JavaScript", "Java", "C++"]

programming_languages.insert(1,"Python")

print(programming_languages)

# Результат
# ['JavaScript', 'Python', 'Java', 'C++']

Метод .insert() дает вам немного больше гибкости по сравнению с методом .append(), который добавляет новый элемент только в конец списка.

В чем разница между методами .append() и .extend()?

Что, если вы хотите добавить в список не один, а сразу несколько элементов?

Вы можете воспользоваться тем же методом .append().

Скажем, у вас есть список, содержащий только два языка программирования:

programming_languages = ["JavaScript", "Java"]

print(programming_languages)

# Результат
# ['JavaScript', 'Java']

И вы хотите добавить еще два языка в конце.

В этом случае вы передаете список, содержащий два новых значения, в качестве аргумента для .append():

programming_languages = ["JavaScript", "Java"]

# Добавляем два новых элемента в конец списка
programming_languages.append(["Python","C++"])

print(programming_languages)

# Результат
# ['JavaScript', 'Java', ['Python', 'C++']]

Если вы внимательно посмотрите на вывод — ['JavaScript', 'Java', ['Python', 'C++']], — вы увидите, что в конец уже существующего списка добавлен новый список.

Итак, .append() добавляет список внутрь списка. Таким образом, вы получаете вложенный список.

Списки являются объектами, и когда вы используете .append() для добавления одного списка в другой, новые элементы будут добавлены как один объект (в данном случае, как один список).

Скажем, у вас уже было два списка, например:

names = ["Jimmy", "Timmy"]
more_names = ["Kenny", "Lenny"]

Что, если бы вы захотели объединить содержимое обоих списков в один, добавив к names содержимое more_names?

Когда для этой цели используется метод .append(), внутри names создается другой список:

names = ["Jimmy", "Timmy"]
more_names = ["Kenny", "Lenny"]

# Добавляем содержимое more_names в names
names.append(more_names)

print(names)

# Результат
# ['Jimmy', 'Timmy', ['Kenny', 'Lenny']]

Итак, .append() добавляет новые элементы в виде другого списка, добавляя объект в конец.

Особенности использования .extend()

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

Общий синтаксис выглядит следующим образом:

list_name.extend(iterable/other_list_name)

Итак, давайте разбираться:

  • list_name — имя одного из списков
  • .extend() — это метод добавления всего содержимого одного списка в другой
  • iterable может быть любым итерируемым объектом, таким как другой список, например, other_list_name. В данном случае other_list_name — это список, который будет объединен с list_name, а все его элементы будут добавлены один за другим в конец list_name по отдельности.

Итак, взяв код из предыдущего примера и заменив .append() на .extend(), мы получим следующее:

names = ["Jimmy", "Timmy"]
more_names = ["Kenny", "Lenny"]

names.extend(more_names)

print(names)

# Результат
# ['Jimmy', 'Timmy', 'Kenny', 'Lenny']

Когда мы использовали .extend(), список names расширился, а его длина увеличилась на 2.

Метод .extend() принимает список (или другой итерируемый объект) в качестве аргумента, выполняет итерацию по каждому элементу, а затем добавляет каждый элемент в итерируемом объекте в список.

Еще одно различие между .append() и .extend()

Когда вы хотите добавить строку, .append() добавляет в конец списка весь элемент целиком:

names = ["Jimmy", "Timmy", "Kenny", "Lenny"]

# Добавляем имя Dylan в конец списка
names.append("Dylan")

print(names)

# Результат
# ['Jimmy', 'Timmy', 'Kenny', 'Lenny', 'Dylan']

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

Это связано с тем, что строки являются итерируемыми объектами, а .extend() перебирает переданный ему итерируемый аргумент.

Итак, тот же пример, но с методом .extend(), будет выглядеть так:

names = ["Jimmy", "Timmy", "Kenny", "Lenny"]

# Передаем в .extend() строку (итерируемый объект) 
names.extend("Dylan")

print(names)

# Результат
# ['Jimmy', 'Timmy', 'Kenny', 'Lenny', 'D', 'y', 'l', 'a', 'n']

Заключение

Подводя итог, можно сказать, что метод .append() используется для добавления элемента в конец существующего списка без создания нового списка. Для добавления элемента на любую заданную позицию в списке стоит использовать метод .insert().

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

Спасибо за чтение и успехов в написании кода!

Перевод статьи «Append in Python – How to Append to a List or an Array».

Прокрутить вверх