- Как добавить элемент в список в Python
- Что такое списки в Python? Определение для начинающих
- Как создавать списки в Python
- Как индексируются списки в Python
- Списки в Python изменяемы
- Что делает метод .append()?
- В чем разница между методами .append() и .insert()?
- В чем разница между методами .append() и .extend()?
- Особенности использования .extend()
- Еще одно различие между .append() и .extend()
- Заключение
Как добавить элемент в список в Python
В этой статье мы расскажем вам, как добавить элемент в список в Python. Вы узнаете о методе .append() и увидите, чем он отличается от других методов, используемых для добавления элементов в списки.
Что такое списки в Python? Определение для начинающих
Массив в программировании — это упорядоченный набор элементов, где все элементы должны иметь один и тот же тип данных.
Однако, в отличие от других языков программирования, массивы не являются встроенной структурой данных в Python. Вместо традиционных массивов Python использует списки.
Списки, по сути, представляют собой динамические массивы и являются одной из наиболее распространенных и мощных структур данных в Python.
Можете считать их упорядоченными контейнерами. Они хранят и организуют похожие связанные данные вместе.
Кроме того, элементы, хранящиеся в списке, могут относиться к любому типу данных.
Могут быть списки целых чисел ( int ), списки чисел с плавающей точкой ( float ), списки строк ( string ) и списки данных любых других встроенных типов Python.
Списки более гибкие, чем традиционные массивы. Это означает, что в одном списке может быть несколько различных типов данных.
Списки содержат 0 или более элементов, то есть могут быть и пустыми. Внутри списка также могут быть повторяющиеся значения.
Значения разделяются запятой и заключаются в квадратные скобки [] .
Как создавать списки в Python
Чтобы создать новый список, сначала дайте ему имя. Затем добавьте оператор присваивания ( = ) и пару квадратных скобок. Внутри скобок добавьте значения, которые должны содержаться в списке.
К примеру, это может выглядеть так:
# Создаем новый список имен names = ["Jimmy", "Timmy", "Kenny", "Lenny"] # Выводим список в консоль print(names) # Результат # ['Jimmy', 'Timmy', 'Kenny', 'Lenny']
Как индексируются списки в 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() — это метод списка для добавления элемента в конец 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() .
Спасибо за чтение и успехов в написании кода!