Как выглядит инструкция добавления элемента b в конец списка a

#статьи


  • 0

Учимся работать со списками с помощью встроенных функций языка.

Иллюстрация: Катя Павловская для Skillbox Media

Дмитрий Зверев

Любитель научной фантастики и технологического прогресса. Хорошо сочетает в себе заумного технаря и утончённого гуманитария. Пишет про IT и радуется этому.

Методы append() и extend() позволяют добавить новый элемент в уже существующий список или объединить несколько list-объектов в один. В этой статье мы расскажем и покажем на примерах, как ими пользоваться. А в конце — поделимся менее очевидными способами расширения списков.

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

list.append(item)

append() принимает один аргумент item и добавляет его в конец list. Тип параметра может быть любым: числа, строки, словари и так далее. Метод возвращает объект None — то есть ничего.

Допустим, у нас есть список a, который заполнен строками:

a = ['car', 'top', 'lot']

Если мы захотим добавить в него новую строку ‘row’, то передадим её в качестве аргумента в append(). Так как метод принадлежит типу list, то вызывать его нужно для объекта a через точку:

a.append('row')
print(a)
['car', 'top', 'lot', 'row']

Строка добавилась в конец нашего списка. Всё работает.

Усложним задачу и попробуем добавить ещё один список из двух строк:

b = ['moon', 'sun']
a.append(b)
print(a)
['car', 'top', 'lot', 'row', ['moon', 'sun']]

Как мы видим, в a добавился список b с вложенными в него элементами. А если мы захотим, чтобы элементы из b добавились отдельно? Вот так:

['car', 'top', 'lot', 'row', 'moon', 'sun']

К сожалению, с помощью append() этого сделать нельзя, потому что метод принимает только один аргумент. Если вы всё-таки попытаетесь передать несколько объектов через запятую, то интерпретатор вызовет исключение TypeError (ошибка типа):

a = [1, 2, 3]
a.append(1, 2, 3)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: list.append() takes exactly one argument (3 given)

К счастью, есть метод extend(), который позволяет добавить одновременно несколько элементов. О нём и поговорим далее.

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

list.extend(iterable)

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

Как и append(), метод возвращает объект None.

Вернёмся к нашему списку a:

 a = ['car', 'top', 'lot']

Допустим, мы хотим соединить его с другим списком из строк. Передадим b в extend() и получим результат:

b = ['dog', 'cat']
a.extend(b)

print(a)
['car', 'top', 'lot', 'dog', 'cat']

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

Мы можем сделать то же самое и с другим итерируемыми объектами — например, кортежами или строками:

c = ('like', 'mode')
a.extend(c)

print(a)
['car', 'top', 'lot', 'dog', 'cat', 'like', 'mode']

d = 'man'
a.extend(d)

print(a)
['car', 'top', 'lot', 'dog', 'cat', 'like', 'mode', 'm', 'a', 'n']

Обратите внимание: строки, которые передаются в extend(), превращаются в списки символов и добавляются посимвольно. Так, строка ‘man’ разложилась на ‘m’, ‘a’, ‘n’.

Если передать в extend() не итерируемый объект, например число, Python генерирует TypeError:

a = [1, 2, 3]
a.extend(1)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'int' object is not iterable

В сообщении нам вежливо объясняют, что число — это не итерируемый объект.

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

Оператор +. Он напоминает обычный математический оператор, но со списками действует как функция extend():

a = [2, 3]
b = [1, 4]
a += b

print(a)
[2, 3, 1, 4]

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

Срезы. Ещё один способ добавить элементы в список — нестандартно использовать индексацию. Выглядит это так:

a = [2, 3]
b = [1, 4]
a[len(a):] = b

print(a)
[2, 3, 1, 4]

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

  • Функция append() позволяет добавлять в список один новый элемент — например, число, строку или другой список.
  • Функция extend() работает как append(), но в качестве параметра принимает итерируемый объект: список, кортеж или строку. Содержимое этого объекта поэлементно добавляется в другой список.
  • Кроме методов append() и extend() добавить элементы в список можно с помощью оператора + и срезов. Оба способа действуют как extend() — поочерёдно добавляют элементы одного списка в другой.

Бесплатный курс: «Быстрый старт в Python»
Начать учиться

#статьи


  • 0

Рассказали всё самое важное о списках для тех, кто только становится «змееустом».

Иллюстрация: Оля Ежак для Skillbox Media

Дмитрий Зверев

Любитель научной фантастики и технологического прогресса. Хорошо сочетает в себе заумного технаря и утончённого гуманитария. Пишет про IT и радуется этому.

Сегодня мы подробно поговорим о, пожалуй, самых важных объектах в Python — списках. Разберём, зачем они нужны, как их использовать и какие удобные функции есть для работы с ними.

В статье есть всё, что начинающим разработчикам нужно знать о списках в Python:

  • Что это такое
  • Как создавать списки в Python
  • Какие с ними можно выполнять операции
  • Как работать со встроенными функциями
  • Какие в Python есть методы управления элементами

Список (list) — это упорядоченный набор элементов, каждый из которых имеет свой номер, или индекс, позволяющий быстро получить к нему доступ. Нумерация элементов в списке начинается с 0: почему-то так сложилось в C, а C — это база. Теорий на этот счёт много — на «Хабре» даже вышло большое расследование :)

Так списки можно представить визуально
Иллюстрация: Оля Ежак для Skillbox Media

В одном списке одновременно могут лежать данные разных типов — например, и строки, и числа. А ещё в один список можно положить другой и ничего не сломается:

Мы положили в список число, строку и кота. Всё работает
Иллюстрация: Оля Ежак для Skillbox Media

Все элементы в списке пронумерованы. Мы можем без проблем узнать индекс элемента и обратиться по нему.

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

Добавили новый элемент — мышь — и изменили первый элемент на 8
Иллюстрация: Оля Ежак для Skillbox Media

Когда мы создаём объект list, в памяти компьютера под него резервируется место. Нам не нужно переживать о том, сколько выделяется места и когда оно освобождается, — Python всё сделает сам. Например, когда мы добавляем новые элементы, он выделяет память, а когда удаляем старые — освобождает.

Под капотом списков в Python лежит структура данных под названием «массив». У массива есть два важных свойства: под каждый элемент он резервирует одинаковое количество памяти, а все элементы следуют друг за другом, без «пробелов».

Однако в списках Python можно хранить объекты разного размера и типа. Более того, размер массива ограничен, а размер списка в Python — нет. Но всё равно мы знаем, сколько у нас элементов, а значит, можем обратиться к любому из них с помощью индексов.

И тут есть небольшой трюк: списки в Python представляют собой массив ссылок. Да-да, решение очень элегантное — каждый элемент такого массива хранит не сами данные, а ссылку на их расположение в памяти компьютера!

Чтобы создать объект list, в Python используют квадратные скобки — []. Внутри них перечисляют элементы через запятую:

a = [1, 2, 3]

Мы создали список a и поместили в него три числа, которые разделили запятыми. Давайте выведем его с помощью функции print():

print(a)

>>> [1, 2, 3]

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

Мы уже говорили, что списки могут хранить данные любого типа. В примере ниже объект b хранит: строку — cat, число — 123 и булево значение — True:

b = ['cat', 123, True]

print(b)

>>> ['cat', 123, True]

Также в Python можно создавать вложенные списки:

c = [1, 2, [3, 4]]

print(c)

>>> [1, 2, [3, 4]]

Мы получили объект, состоящий из двух чисел — 1 и 2 — и вложенного list с двумя элементами — [3, 4].

Если просто хранить данные в списках, то от них будет мало толку. Поэтому давайте рассмотрим, какие операции они позволяют выполнить.

Доступ к элементам списка получают по индексам, через квадратные скобки []:

a = [1, 2, 3]

print(a[1])

>>> 2

Мы обратились ко второму элементу и вывели его с помощью print().

Здесь важно помнить две вещи:

  • у каждого элемента есть свой индекс;
  • индексы начинаются с 0.

Давайте ещё поиграем с индексами:

a = [1, 2, 3, 4]

a[0] # Обратится к 1
a[2] # Обратится к 3
a[3] # Обратится к 4
a[4] # Выведет ошибку

В последней строке мы обратились к несуществующему индексу, поэтому Python выдал ошибку.

Кроме того, Python поддерживает обращение к нескольким элементам сразу — через интервал. Делается это с помощью двоеточия — :.

a = [1, 2, 3, 4]

a[0:2] # Получим [1, 2]

Двоеточие позволяет получить срез списка. Полная форма оператора выглядит так: начальный_индекс:конечный_индекс:шаг.

Здесь мы указываем, с какого индекса начинается «срез», на каком заканчивается и с каким шагом берутся элементы — по умолчанию 1. Единственный нюанс с конечным индексом: хоть мы и можем подумать, что закончим именно на нём, на самом деле Python остановится на элементе с индексом конечный_индекс — 1. Почему создатели языка решили так сделать? Кто их знает.

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

Усложним пример:

a = [1, 2, 3, 4, 5]

a[1:6:2] # Получим [2, 4]

Здесь мы шли по элементам с шагом 2. Начали с индекса 1 — это первое число внутри скобок, а закончили на индексе 6, не включая его. Двигались с шагом 2, то есть через один элемент, и получили [2, 4].

Протестируйте этот тип индексации сами, чтобы лучше понять, как работают срезы в Python.

Списки — это динамическая структура данных. А значит, мы можем менять их уже после создания.

Например, можно заменить один элемент на другой:

a = [1, 2, 3]
a[1] = 4

print(a)
 
>>> [1, 4, 3]

Мы обратились к элементу по индексу и заменили его на число 4. Всё прошло успешно, список изменился.

Но нужно быть осторожными, потому что может случиться такое:

a = [1, 2]
b = a
a[0] = 5

print(a)
print(b)

>> [5, 2]
>> [5, 2]

Сначала мы создали список a с двумя элементами — 1 и 2. Затем объявили переменную b и присвоили ей содержимое a. Потом заменили первый элемент в a и… удивились, что он заменился и в b.

Проблема в том, что a — это ссылка на область в памяти компьютера, где хранится первый элемент списка, а также на следующий его элемент. Вот как всё это устроено в памяти компьютера:

Когда мы присваиваем переменной список, на самом деле мы присваиваем ей ссылку на первый элемент списка
Иллюстрация: Оля Ежак для Skillbox Media

Каждый элемент списка имеет четыре секции: свой адрес, данные, адрес следующего элемента и адрес предыдущего. Если мы получили доступ к какому-то элементу, мы без проблем можем двигаться вперёд-назад по этому списку и менять его данные.

Поэтому, когда мы присвоили списку b список a, то на самом деле присвоили ему ссылку на первый элемент — по сути, сделав их одним списком.

Иногда полезно объединить два списка. Чтобы это сделать, используют оператор +:

a = [1, 2]
b = [3, 4]
с = a + b

print(с)

>>> [1, 2, 3, 4]

Мы создали два списка — a и b. Затем переприсвоили a новым списком, который стал объединением старого a и b.

Элементы списка можно присвоить отдельным переменным:

a = [1, 2, 3]
d1, d2, d3 = a

print(d1)
print(d2)
print(d3)

>>> 1
>>> 2
>>> 3

Здесь из списка a поочерёдно достаются элементы, начиная с индекса 0, и присваиваются переменным. И в отличие от присвоения одного списка другому, в этом случае Python создаст три отдельных целых числа, которые никак не будут связаны с элементами списка, и присвоит их трём переменным. Поэтому, если мы изменим, например, переменную d2, со списком a ничего не случится.

Мы можем перебирать элементы списка с помощью циклов for и while.

Так выглядит перебор через for:

animals = ['cat', 'dog', 'bat']
for animal in animals:
  print(animal)

>>> cat
>>> dog
>>> bat

Здесь мы перебираем каждый элемент списка и выводим их с помощью функции print().

А вот так выглядит перебор через цикл while:

animals = ['cat', 'dog', 'bat']
i = 0
while i < len(animals):
  print(animals[i])
  i += 1

>>> cat
>>> dog
>>> bat

Этот перебор чуть сложнее, потому что мы используем дополнительную переменную i, чтобы обращаться к элементам списка. Также мы использовали встроенную функцию len(), чтобы узнать размер нашего списка. А ещё в условии цикла while мы указали знак «меньше» (<), потому что индексация элементов идёт до значения количество элементов списка — 1. Как и в прошлом примере, все элементы по очереди выводятся с помощью функции print().

Python поддерживает сравнение списков. Два списка считаются равными, если они содержат одинаковые элементы. Функция возвращает булево значение — True или False:

a = [1, 2, 3]
b = [1, 2, 3]
print(a == b)

>>> True

Получили, что списки равны.

В некоторых языках равенство ещё проверяется и по тому, ссылаются ли переменные на один и тот же объект. Обычно это делается через оператор ===. В Python это можно сделать через оператор is, который проверяет, имеют ли две переменные один и тот же адрес в памяти:

a = [1, 2, 3]
b = a
print(a is b)

>>> True

Получили, что две переменные ссылаются на один и тот же адрес в памяти.

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

Возвращает длину списка:

a = [5, 3, 1]
len(a) # 3

Возвращает отсортированный список:

a = [8, 1, 3, 2]
sorted(a) # [1, 2, 3, 8]

Возвращают наименьший и наибольший элемент списка:

a = [1, 9, -2, 3]
min(a) # -2
max(a) # 9

Чтобы проще управлять элементами списка, в стандартной библиотеке Python есть набор популярных методов для списков. Разберём основные из них.

Добавляет новый элемент в конец списка:

a = [1, 2, 3]
a.append(4)
print(a) 

>>> [1, 2, 3, 4]

Добавляет набор элементов в конец списка:

a = [1, 2, 3]
a.extend([4, 5])
print(a) 

>>> [1, 2, 3, 4, 5]

Внутрь метода extend() нужно передать итерируемый объект — например, другой list или строку.

Вот так метод extend() добавит строку:

a = ['cat', 'dog', 'bat']
a.extend('mouse')
print(a)

>>> ['cat', 'dog', 'bat', 'm', 'o', 'u', 's', 'e']

Заметьте, что строка добавилась посимвольно.

Добавляет новый элемент по индексу:

a = [1, 2, 3]
a.insert(0, 4)
print(a)

>>> [4, 1, 2, 3]

Сначала мы передаём индекс, по которому хотим вставить новый элемент, а затем сам элемент.

Удаляет элемент из списка:

a = [1, 2, 3, 1]
a.remove(1)
print(a) 

>>> [2, 3, 1]

Метод удаляет только первое вхождение элемента. Остальные остаются нетронутыми.

Если элемента нет в списке, Python вернёт ошибку и программа прервётся:

a = [1, 2, 3, 1]
a.remove(5)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: list.remove(x): x not in list

Ошибка говорит, что элемента нет в списке.

Удаляет все элементы из списка и делает его пустым:

a = [1, 2, 3]
a.clear()
print(a) 

>>> []

Возвращает индекс элемента списка в Python:

a = [1, 2, 3]
print(a.index(2)) 

>>> 1

Если элемента нет в списке, выведется ошибка:

a = [1, 2, 3]
print(a.index(4))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: 4 is not in list

Удаляет элемент по индексу и возвращает его как результат:

a = [1, 2, 3]
print(a.pop())
print(a)

>>> 3
>>> [1, 2]

Мы не передали индекс в метод, поэтому он удалил последний элемент списка. Если передать индекс, то получится так:

a = [1, 2, 3]
print(a.pop(1)) 
print(a) 

>>> 2
>>> [1, 3]

Считает, сколько раз элемент повторяется в списке:

a = [1, 1, 1, 2]
print(a.count(1)) 

>>> 3

Сортирует список:

a = [4, 1, 5, 2]
a.sort() # [1, 2, 4, 5]

Если нам нужно отсортировать в обратном порядке — от большего к меньшему, — в методе есть дополнительный параметр reverse:

a = [4, 1, 5, 2]
a.sort(reverse=True) # [5, 4, 2, 1]

Переставляет элементы в обратном порядке:

a = [1, 3, 2, 4]
a.reverse() # [4, 2, 3, 1]

Копирует список:

a = [1, 2, 3]
b = a.copy()

print(b)

>>> [1, 2, 3]

Для того чтобы быстро находить нужные методы во время работы, пользуйтесь этой шпаргалкой:

Метод Что делает
a.append(x) Добавляет элемент x в конец списка a. Если x — список, то он появится в a как вложенный
a.extend(b) Добавляет в конец a все элементы списка b
a.insert(i, x) Вставляет элемент x на позицию i
a.remove(x) Удаляет в a первый элемент, значение которого равно x
a.clear() Удаляет все элементы из списка a и делает его пустым
a.index(x) Возвращает индекс элемента списка
a.pop(i) Удаляет элемент по индексу и возвращает его
a.count(x) Считает, сколько раз элемент повторяется в списке
a.sort() Сортирует список. Чтобы отсортировать элементы в обратном порядке, нужно установить дополнительный аргумент reverse=True
a.reverse() Возвращает обратный итератор списка a
a.copy() Создаёт поверхностную копию списка. Для создания глубокой копии используйте метод deepcopy из модуля copy

Лучше не учить это всё, а применять на практике. А ещё лучше — попытаться написать каждый метод самостоятельно, не используя никакие встроенные функции.

Сколько бы вы ни писали код на Python, всё равно придётся подсматривать в документацию и понимать, какой метод что делает. И для этого есть разные удобные сайты — например, полный список методов можно посмотреть на W3Schools.

Профессия Веб-разработчик

Освойте востребованную профессию с нуля и добавьте более 60 проектов в портфолио. Учитесь онлайн, в удобном вам темпе.

Узнать больше →

Курс с трудоустройством: «Веб-разработчик»
Узнать о курсе

Не путайте в Python списки и массивы: в первых можно хранить разнородные объекты. Здесь кратко описаны все основные методы списков Python 3.x.

Быстрый путеводитель по Python: cписки за 7 минут

Когда речь идет о массивах, обычно мы подразумеваем набор однородных элементов. Но в Python списки – это не массивы. Список (list) может представлять коллекцию разнородных объектов: целые и дробные числа, строки, логические значения и т. д. Описанное свойство позволяет разработчикам применять списки более гибко, чем обычные массивы. Среди типов данных Python списки являются одним из наиболее мощных и часто используемых.

В Python списки создаются двумя способами:

  1. С помощью квадратных скобок []
  2. С помощью функции list()

Элементы списка можно сразу поместить внутрь скобок. По умолчанию создается пустой list.

>>> # Рассмотрим создание списка на примере дел
... # Второй будем использовать для хранения абстрактной информации
... 
>>> todo_list = []
>>> general_info = list()
>>> type(todo_list), type(general_info)
(<class 'list'>, <class 'list'>)

Итак, мы создали два пустых списка. Заполним их данными.

Как добавить данные в список?

В языке программирования Python это изменяемые объекты. Можно добавлять, заменять или удалять конкретные элементы, не следя за остальными. Добавить элементы в список можно двумя методами:

  1. append()
  2. insert()

Добавление элемента методом append()

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

>>> todo_list.append('Завтрак, зарядка, душ')
>>> todo_list.append('Чтение статей на proglib')
>>> todo_list.append('Дорога до работы')
>>> todo_list
['Завтрак, зарядка, душ', 'Чтение статей на proglib', 'Дорога до работы']

Добавление элемента методом insert()

insert() принимает два аргумента – индекс позиции и вставляемый элемент:

>>> general_info.insert(0, 'Важные математические константы')
>>> general_info.insert(1, 1j)
>>> general_info.insert(2, 3.1415926)
>>> general_info.insert(3, False)
>>> general_info.insert(4, 1)
>>> general_info
['Важные математические константы', 1j, 3.1415926, False, 1]

Как обратиться к элементам списка Python?

Есть три способа:

  1. Оператор индекса
  2. Оператор среза
  3. Итерирование

Оператор индекса

Индекс используется для доступа к отдельному элементу.

>>> todo_list[2]
'Дорога до работы'
>>> general_info[1]
1j

Оператор среза

Срез применяется для обращения к нескольким элементам списка. Синтаксис: list_name[start:stop:step], где

  • start – индекс, с которого начинается срез (по умолчанию начало списка)
  • stop – индекс, до которого осуществляется срез (по умолчанию конец списка)
  • step – шаг приращения, по умолчанию равно 1
>>> general_info[:2]      # срез с начала до 2 индекса, не включая
['Важные математические константы', 1j]
>>> general_info[2:4]     # срез с индекса 2 по 3
[3.1415926, False]
>>> general_info[::2]     # чётные индексы
['Важные математические константы', 3.1415926, 1]

Обратите внимание: если указан индекс stop, то срез осуществляется вплоть до него, но исключая сам элемент.

Итерирование

Списки Python – итерируемые объекты. Для перебора элементов списка не нужен счетчик:

>>> for item in todo_list:
...     print(item)
... 
Завтрак, зарядка, душ
Чтение статей на proglib
Дорога до работы

Как удалить элемент из списка?

Всего два метода:

  1. remove()
  2. pop()

Удаление элемента методом remove()

remove() находит и удаляет элемент из списка:

>>> general_info.remove(False)
>>> general_info
['Важные математические константы', 1j, 3.1415926, 1]

Удаление элемента методом pop()

pop() удаляет и возвращает элемент, по умолчанию последний:

>>> general_info.pop()
1
>>> general_info.pop()
3.1415926
>>> general_info
['Важные математические константы', 1j]

О методах поподробнее

Посмотреть аттрибуты и функции объекта списка, как и других объектов Python, можно передав список функции dir(). Вот сокращенный вид выводимого функцией списка:

>>> dir(todo_list)
[...  'append', 'clear', 'copy', 'count', 'extend', 'index',
'insert', 'pop', 'remove', 'reverse', 'sort']

Ничего сложного, правда? :)

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

  1. a.append(e) – добавляет переданную переменную e в конец списка a
  2. a.clear() – удаляет все элементы из списка a
  3. a.copy() – возвращает копию списка a
  4. a.count(e) – возвращает число столько раз, сколько элемент e встречается в списке a
  5. a.extend(b) – добавляет все элементы списка b в конец списка a
  6. a.index(e) – находит и возвращает индекс первого элемента списка a, равного e
  7. a.insert(i, e) – вставляет элемент на позицию с индексом i
  8. a.pop(i) – возвращает и удаляет элемент с индексом (по умолчанию последний)
  9. a.remove(e) – удаляет элемент e из списка a
  10. a.reverse() – разворачивает в обратном порядке элементы списка a
  11. a.sort() – сортирует элементы списка a в восходящем порядке

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

Используйте списки Python, если от структуры данных нужно следующее:

  • Хранить объекты данных нескольких типов.
  • Сохранять очередность элементов и порядок вставки.
  • Хранить повторяющиеся значения.
  • Изменять элементы.

Источник

Вам также могут быть интересны

  • Инструменты Python: лучшая шпаргалка для начинающих
  • 13 лучших книг по Python для начинающих и продолжающих
  • Крутые модули Python, которые вы не используете, а надо бы

Last Updated :
18 Mar, 2025

append() method in Python is used to add a single item to the end of list. This method modifies the original list and does not return a new list. Let’s look at an example to better understand this.

Python

a = [2, 5, 6, 7]

# Use append() to add the element 8 to the end of the list
a.append(8)
print(a)

Explanation: append(8) adds 8 to the end of the list a, modifying it in place.

Table of Content

  • Syntax of append() method
  • Examples of append() Method
  • Frequently Asked Questions on append() Method

Syntax of append() method

list.append(element)

Parameter:

  • element: The item to be appended to the list. This can be of any data type (integer, string, list, object, etc.). This parameter is mandatory, and omitting it will cause an error.

Return:

  • append() does not return any value. It modifies the original list in place.

Python List append() Method

Examples of append() Method

Here are some examples and use-cases of list append() function in Python.

1. Appending Elements of Different Types

The append() method allows adding elements of different data types (integers, strings, lists or objects) to a list. Python lists are heterogeneous meaning they can hold a mix of data types.

Python

a = [1, "hello", 3.14]

a.append(True)
print(a)

Output

[1, 'hello', 3.14, True]

Explanation: In this list “a” contains elements of different data types (integer, string, float) and append(True) adds a boolean True to the end of the list.

2. Appending List to a List

When appending one list to another, the entire list is added as a single element, creating a nested list.

Python

a = [1, 2, 3]

a.append([4, 5])
print(a)

Explanation: append() method adds the list [4, 5] as a single element to the end of the list a, resulting in a nested list.

3. Appending Using a Loop

Appending multiple elements using a loop:

Python

a = []
for i in range(5):
    a.append(i)
print(a)

Append vs Extend vs Insert

Method

Functionality

append(x)

Adds x as a single element at the end of the list.

extend(iterable)

Adds all elements of iterable individually to the list.

insert(index, x)

Inserts x at the specified index.

Example demonstrating the difference between append and extend:

Python

a = [1, 2, 3]
a.append([4, 5])  
print(a)  

b = [1, 2, 3]
b.extend([4, 5])  
print(b)  

Output

[1, 2, 3, [4, 5]]
[1, 2, 3, 4, 5]

Explanation:

  • append([4,5]) adds [4,5] as a single element, creating a nested list ([1, 2, 3, [4, 5]]).
  • extend([4,5]) adds each element separately, resulting in [1, 2, 3, 4, 5].

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

Список — это структура данных для хранения объектов с различными типами данных. В каком-то смысле его можно назвать «динамическим» массивом: в Python они практически не накладывают ограничения на количество данных в нём (максимальный размер зависит от параметра sys.maxsize и битности операционной системы) и тип этих данных. 

В рамках этого материала расскажем, как добавить элементы в список Python.

Переобъявление

Самый простой и «топорный» способ в Python добавить элемент в список — объявить объект заново:

example_list = [10,11,12]
print(example_list)

example_list = [10,11,12,13]
print(example_list)

Вывод:

[10, 11, 12]
[10, 12, 13, 14]

Останавливаться на этом методе смысла нет и полезен он будет только в том случае, если вы забыли абсолютно все альтернативные способы.

Метод append()

Метод append() поможет вам, если вам требуется добавить новый элемент в список Python. Новый объект размещается в конце. Вот синтаксис этого метода:

AppendList.append(object), где 

  • AppendList — список, в который добавляется элемент;
  • object — новый объект.

Вот пример, как добавить элемент в конец списка Python с помощью append():

AppendList= [11,12,13]
print(AppendList)

AppendList.append(14)
print(AppendList)

AppendList.append('another type')
print(AppendList)

Вывод:

[11, 12, 13]
[11, 12, 13, 14]
[11, 12, 13, 14, 'another type']

В Python добавить элемент в пустой список можно с помощью append():

AppendList = []
AppendList.append('timeweb')

print(AppendList)

Вывод:

['timeweb']

В качестве нового объекта может выступать другой список:

AppendList = [11,12,13]

AddList = [14,15]

AppendList.append(AddList)

print(AppendList)

Вывод:

[11, 12, 13, [14, 15]]

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

Метод extend()

Метод extend() позволяет объединить два списка. Вот синтаксис метода:

ExtendList.extend(iterable_object), где

  • ExtendList — список, в который добавляются объекты;
  • iterable_object — объект, чьи элементы будут добавлены в ExtendList.

Перейдем к практической части. Вот как добавить несколько элементов в список Python с помощью extend():

ExtendList= [11,12,13]

AddList = [14,15]

ExtendList.extend(AddList)

print(ExtendList)

Вывод:

[11, 12, 13, 14, 15]

Также extend() работает с любыми итерируемыми объектами. Что такое итерируемый объект?

Итерируемый объект — это объект, который может возвращать свои элементы по одному. Списки, кортежи, словари, строки — всё это итерируемые объекты. Рассмотрим, как extend() работает с этими объектами:

ExtendList = [11,12,13]

AddDictionary = {'first': 1, 'second': 2}

AddString = 'timeweb.cloud'

AddTuple = (14,15,16,17)

ExtendList.extend(AddDictionary)
print('Extend with dictionary:', ExtendList)

ExtendList.extend(AddString)
print('Extend with string:', ExtendList)

ExtendList.extend(AddTuple)
print('Extend with tuple:', ExtendList)

Вывод:

Extend with dictionary: [11, 12, 13, 'first', 'second']
Extend with string: [11, 12, 13, 'first', 'second', 't', 'i', 'm', 'e', 'w', 'e', 'b', '.', 'c', 'l', 'o', 'u', 'd']
Extend with tuple: [11, 12, 13, 'first', 'second', 't', 'i', 'm', 'e', 'w', 'e', 'b', '.', 'c', 'l', 'o', 'u', 'd', 14, 15, 16, 17]

Вместо непосредственно extend() можно использовать знак сложения +. Такой способ будет работать точно также:

ExtendList = [11,12,13]

AddList = [14,15,16]

ExtendList+= AddList

print(ExtendList)

ExtendList = ExtendList + AddList

print(ExtendList)

Вывод:

[11, 12, 13, 14, 15, 16]
[11, 12, 13, 14, 15, 16, 14, 15, 16]

клауд

Метод insert()

Чтобы добавить элемент в список Python по индексу, нужно использовать метод insert(). Он помещает элемент на выбранную пользователем позицию. Вот его синтаксис:

InsertList.insert(pos, element), где

  • InsertList — искомый список;
  • pos — первый входной аргумент, позицию нового элемента;
  • element — объект, который хотим добавить.

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

InsertList = [11,12,13]

InsertList.insert(0,10')

print(InsertList)

Вывод:

[10, 11, 12, 13]

Другие примеры использования:

InsertList = [11,12,13]

InsertList.insert(1,'b')
print(InsertList)

InsertList.insert(4,'c')
print(InsertList)

Вывод:

[11, 'b', 12, 13]
[11, 'b', 12, 13, 'c']

А вот код, как добавить элемент в середину списка Python:

InsertList= [11,12,13]

InsertList.insert(len(InsertList)//2,'a')

print(InsertList)

InsertList.insert(len(InsertList)//2,'middle')
print(InsertList)

Вывод:

[11, 'a', 12, 13]
[11, 'a', 'middle', 12, 13]

Если выйти за ограничения длины, то ошибка не произойдет. Python поставит элемент в крайнее левое или правое положение:

InsertList= [11,12,13]

InsertList.insert(-20,'a')

print(InsertList)

InsertList.insert(20,'b')

print(InsertList)

Вывод:

['a', 11, 12, 13]
['a', 11,12, 13, 'b']

Конкатенация

Конкатенация — это операция склеивания нескольких линейных структур, например строк. Результатом конкатенации строк «timeweb.» и «cloud» будет timeweb.cloud, где можно выгодно арендовать облачный сервер.

Конкатенация с помощью символа звездочки *:

ConcatenatedList= [11,12,13]

new_list = [ConcatenatedList, 14]

print(new_list)

new_list = [*ConcatenatedList, 14]

print(new_list)

Вывод:

[[11, 12, 13], 14]
[11, 12, 13, 14]

Как видим, в первом случае добавляется объект, а во втором — его содержимое.

Конкатенация с помощью вложенного цикла:

FirstList = [11, 12, 13, 14, 15]
SecondList = [16, 17, 18]
result = [j for i in [FirstList, SecondList] for j in i] 
print (result)

Вывод:

[11, 12, 13, 14, 15, 16, 17, 18]

Конкатенация с помощью itertools.chain():

import itertools 
FirstList = [11,12,13,14,15] 
SecondList = [16,17,18]
result = list(itertools.chain(FirstList, SecondList))

print(result)

Вывод:

[11, 12, 13, 14, 15, 16, 17, 18]

Добавления помощью среза 

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

SliceList[START_POS: STOP_POS: STEP], где

  • SliceList— искомый список;
  • START_POS — индекс первого объекта в выборке;
  • STOP_POS — индекс объекта, обозначающий конец выборки. Сам объект в выборку не входит;
  • STEP — это шаг выборки. Например, если шаг 2, то объекты попадут в выборку через 1.

Вот как срезы можно использовать на практике:

SliceList = [0,1,2,3,4,5,6,7,8,9]

new_list = SliceList[0:10:2]

print(new_list)

Вывод:

[0, 2, 4, 6, 8]

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

С помощью среза в список можно добавить любой итерируемый объект. Элементы можно добавить в конец списка либо заменить ими часть искомого списка. Вот синтаксис такого среза:

SliceList[START:] = iterable

где:

  • SliceList— это искомый список;
  • START — позиция, с которой должны идти элементы
  • iterable — это итерируемый объект, элементы которого попадут в список.

Пример со строкой:

slice_list = [0,1,2,3,4,5,6,7,8,9]

slice_string = 'timeweb'

slice_list[len(slice_list):] = slice_string

print(slice_list)

Вывод:

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 't', 'i', 'm', 'e', 'w', 'e', 'b']

Пример с другим списком:

slice_list = [0,1,2,3,4,5,6,7,8,9]

slice_list2 = [10,11,12]

slice_list[len(slice_list):] = slice_list2

print(slice_list)

Вывод:

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]

Также полезно знать, что срезы можно использовать для замещения части списка:

odd_list = [1,1,3,3,5,5,7,7,9,9]

even_list = [0,2,4,6,8]

odd_list[0:10:2] = even_list

print(odd_list)

Вывод:

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

Подведем итоги

В рамках этого материала мы рассмотрели различные способы добавления элементов в список Python. В большинстве случаев вам будет хватать функционала наиболее распространенных методов — extend(), insert() и append(). Однако не лишним будет знать и о других способах. 

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Инструкция к кофемашине saeco magic comfort
  • Лигандрол инструкция по применению для мужчин
  • Флемоксин солютаб 500 мг инструкция по применению детям 10 лет дозировка в таблетках
  • Инструкция по заполнению извещения по дтп
  • Крем для депиляции интимных зон инструкция по применению