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

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

Команда Timeweb Cloud
Команда Timeweb Cloud
Наши инженеры, технические писатели, редакторы и маркетологи
31 октября 2022 г.
14431
7 минут чтения
Средний рейтинг статьи: 3

Во многих языках программирования в качестве основной структуры для хранения данных используются массивы. Массив — это упорядоченный набор элементов, имеющих одинаковый тип данных. Однако не во всех язык программирования есть массивы. В частности, в 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]
Разверните облачный сервер в Timeweb Cloud за минуту

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

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

Зарегистрируйтесь и начните пользоваться
сервисами Timeweb Cloud прямо сейчас

15 лет опыта
Сосредоточьтесь на своей работе: об остальном позаботимся мы
165 000 клиентов
Нам доверяют частные лица и компании, от небольших фирм до корпораций
Поддержка 24/7
100+ специалистов поддержки, готовых помочь в чате, тикете и по телефону