Во многих языках программирования в качестве основной структуры для хранения данных используются массивы. Массив — это упорядоченный набор элементов, имеющих одинаковый тип данных. Однако не во всех язык программирования есть массивы. В частности, в 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()
поможет вам, если вам требуется добавить новый элемент в список Python. Новый объект размещается в конце. Вот синтаксис этого метода:
AppendList.append(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()
позволяет объединить два списка. Вот синтаксис метода:
ExtendList.extend(iterable_object)
, где
Перейдем к практической части. Вот как добавить несколько элементов в список 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]
клауд
Чтобы добавить элемент в список Python по индексу, нужно использовать метод insert()
. Он помещает элемент на выбранную пользователем позицию. Вот его синтаксис:
InsertList.insert(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 = [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
где:
Пример со строкой:
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()
. Однако не лишним будет знать и о других способах.