Using append in python

Методы append() и extend() в Python: добавляем элементы в список

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

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

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

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

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

Что делает append() в Python

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

Синтаксис и возвращаемое значение

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

Примеры использования append()

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

Если мы захотим добавить в него новую строку ‘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 добавились отдельно? Вот так:

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

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

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

Что делает extend() в Python

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

Синтаксис и возвращаемое значение

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

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

Примеры использования extend()

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

Допустим, мы хотим соединить его с другим списком из строк. Передадим 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 "", 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 List .append() – How to Add an Item to a List in Python

Zaira Hira

Zaira Hira

Python List .append() – How to Add an Item to a List in Python

Lists are one of the most useful and versatile data types available in Python. Lists are a collection of arbitrary objects, just like arrays in other programming languages.

In this tutorial you will learn:

  • An overview of lists and how they are defined.
  • Methods to insert data in a list using: list.append() , list.extend and list.insert() .
  • Syntax, code examples, and output for each data insertion method.
  • How to implement a stack using list insertion and deletion methods.

Prerequisites

For this tutorial, you need:

Lists in Python

Lists have the following properties that make them powerful and flexible:

  • Lists are ordered.
  • Lists are accessed using the index. The first index starts at 0 .
  • Lists are mutable and dynamic which means they can be modified after their creation.

How to create a list in Python

You create a list using square brackets in Python.

We can leave them empty and supply values later in the program:

# Create an empty list programming_lang = []

We can also provide values while creating a list:

# Create a filled list programming_lang = ['P','Y','T','H','O','N']

This would create a list as shown in the image below:

image-63

How to access items in a list

As list items are ordered, you can access them using their index.

In the image below, «P» is at index «0» whereas «H» is at index «3».

image-63

Let’s write a short program to define a list and access its items:

image-65

You can also access items using a negative index, where -1 represents the last list item. If we wanted to access the last item from the list above, we could also use index -1 :

image-66

How to find the length of a list

We can easily find the length of a list using the len() method.

Finding a list

Methods to Add Items to a List

We can extend a list using any of the below methods:

  • list.insert() – inserts a single element anywhere in the list.
  • list.append() – always adds items (strings, numbers, lists) at the end of the list.
  • list.extend() – adds iterable items (lists, tuples, strings) to the end of the list.

How to insert items in a list with insert()

You can insert items in a list at any index using the insert() method. There are more insertion methods and we will look at them later in this post.

Syntax of insert: insert(index, element) .

Example of insert():

# create a list of odd numbers odd_n = [1,3,5,7,9] # '21' is inserted at index 3 (4th position) odd_n.insert(3, 21) print('List of odd #:', odd_n) 

image-76

image-77

image-69

How to append an item to a list using list.append()

We can add a single item at the end of the list using list.append() .

Syntax: list.append(item) .

# crops list crops = ['corn', 'wheat', 'cotton'] # Add 'cane' to the list crops.append('cane') print('Updated crops list: ', crops)

image-71

⚠️Note that trying to append more than one item gives an exception, as list.append() takes only a single argument.

Unable to add multiple items using list.append().

How to add multiple items in a list using list.extend()

We can add multiple items to a list using the extend() method.

The below example combines two lists into a single list.

# create a list even_numbers = [2, 4, 8] # create another list more_even_numers = [100, 400] # add all elements of even_numbers to more_even_numbers even_numbers.extend(more_even_numers) print('List after extend():', even_numbers) 

Extending a list using extend().

Other ways to extend lists in Python:

List slicing

Slicing allows us to select a range of values in a list.

The syntax is shown below:

list[starting index:upto index]

Оцените статью