Работа со списками – одна из ключевых составляющих программирования на Python. Важной ее частью становится добавление новых элементов в список и объединение нескольких списков в один. Наиболее часто задача решается с помощью двух методов – append() и extend(). Рассмотрим основные особенности каждого и отличия между ними.
Метод append() добавляет в список одно значение (обозначается как item). Аргумент оператора ставится последним в существующий list (то есть список). Рассмотрим основные моменты, связанные с практическим использованием оператора.
Написание кода с использованием append() осуществляется предельно просто. Все основные составляющие результата уже были упомянуты выше. На выходе получается следующее.
list.append(item)
Характерной особенностью метода выступает отсутствие возвращаемого значения. То есть использование оператора приводит буквально к возвращению объекта None, которым обозначается ничего.
Чтобы лучше понять порядок использования оператора, целесообразно рассмотреть конкретный пример. Он применяется в отношении списка «а», в состав которого входят три строки.
a = ['car', 'top', 'lot']
Для добавления нового элемента в список используется метод append(). Значение аргумента (в данном случае – row) ставится в скобках. Так как элемент добавляется в «а», названии списка указывается перед оператором и отделяется от него точкой. Итоговый исходный код принимает следующий вид.
a.append('row')
print(a)
['car', 'top', 'lot', 'row']
Если усложнить задачу и добавить в исходный список не один элемент, а другой список (b), состоящий из двух значений (moon и sun). В этом случае программный код станет таким.
b = ['moon', 'sun']
a.append(b)
print(a)
['car', 'top', 'lot', ['moon', 'sun']]
Необходимо обязательно помнить, что оператор append() позволяет добавить только одно значение. Хотя это может быть и отдельный элемент, и список. Добавление двух элементов с помощью этого метода невозможно. Чтобы решить такую задачу, требуется задействование другого оператора, который рассматривается далее.
Метод extend() предназначен для добавления в список нескольких новых элементов. Которые размещаются в конце базы данных. Рассмотрим особенности его грамотного применения на практике.
Специфика оператора extend() заключается в возможности использования в качестве аргумента так называемых итерируемых объектов. В качестве таковых могут выступать списки, строки и кортежи. Причем допускается объединение значений разного типа. Например, чисел со строками или строк с кортежами. В программном коде метод отображается следующим образом.
list.append(item)
Как и для предыдущего оператора, в данном случае речь не идет о возвращении какого-либо значения. То есть оператор возвращает буквально ничего – то есть объект None, который используется для его обозначения.
Рассмотрим несколько практических примеров. В качестве исходных данных – список «а», который составлен из трех строк: car, top, lot. Добавление к нему еще одного списка (b) с помощью оператора extend() выполняется по аналогии с append().
b = ['dog', 'cat']
a.extend(b)
print(a)
['car', 'top', 'lot', 'dog', 'cat']
Результатом становится добавление обоих элементов второго списка в конец первого, причем по отдельности. Точно таким же образом можно добавить другие итерируемые объекты. Например, кортежи (c) или строки (d). Что дает на выходе следующую картину.
c = ('like', 'mode')
a.extend(c)
print(a)
['car', 'top', 'lot', 'dog', 'cat', 'like', 'mode']
d = 'man'
a.extand(d)
print(a)
['car', 'top', 'lot', 'dog', 'cat', 'like', 'mode', 'm', 'a', 'n']
Важной особенностью оператора extend() становится разложение строк на отдельные символы. Которые затем добавляются в список (в данном примере строка man была разделена на буквы m, a и n).
Использование в качестве аргумента метода extend() не итерируемого объекта, приведет к выдаче сообщения формата TypeError. Например, если попробовать применить оператор к числу, будет сгенерирована ошибка.
a = [1, 2, 3]
a.extand(1)
Traceback (most resent call last):
File “<stdin>”, line 1, in <module>
TypeError: 'int' object is not iterable
По большому счету, оба оператора выполняют схожую функцию. Хотя и с рядом существенных отличий. Первое и главное заключается в типе используемых данных. Указанный первым оператор применяется в отношении одного объекта. В качестве которого выступает число, строка или еще один список. Второй метод предусматривает использование так называемых итерируемых объектов. Включая списки, кортежи или строки.
Вторым существенным отличием становится способ добавления. Оператор append() воспринимает аргумент как единый и неделимый объект. Метод extend(), напротив, раскладывает указанное в нем значение на составные элементы, после чего добавляет их в исходный список.
На практике существует еще два вполне эффективных способа добавления в список новых элементов. Первый предусматривает задействование оператора +. Он очень похож на обычный математические плюс, но фактически работает со списками аналогично методу 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]
Программисты на Python очень востребованы на сегодняшнем российском (да и мировом) рынке труда. Что делает весьма актуальным наиболее распространенный способ овладения перспективной специальностью в виде образовательных онлайн-курсов. С помощью нашего сайта можно с легкостью подобрать подходящий и оформить заявку на обучение. Ниже представлено несколько интересных курсов подготовки от ведущих отечественных учебных центров.
Длительность программы обучения: 9 месяцев.
Особенности и преимущества образовательного курса:
Длительность программы обучения: 9 месяцев.
Особенности и преимущества образовательного курса:
Длительность программы обучения: 21 месяц.
Особенности и преимущества образовательного курса:
Длительность программы обучения: 9 месяцев.
Особенности и преимущества образовательного курса:
Длительность программы обучения: 9 месяцев.
Особенности и преимущества образовательного курса:
Их несколько, начиная с простоты при одновременной функциональности программного кода, а заканчивая легкостью изучения и возможностью удачно комбинировать с другими языками программирования.
Оба операторы предназначены для добавления к существующему списку Питона новых элементов. Но немного по-разному. Первый оперирует с одним аргументом, второй – с несколькими (к тому же относящимися к итерируемым объектам).
Да, на практике нередко применяются еще два способа. Первый использует универсальный оператор +, второй – так называемые срезы.