Написать пост

Метод append() в Python: что это, синтаксис и примеры кода

Аватарка пользователя sudo >: )

Объяснили, как работает append() в Python, разобрали синтаксис, привели несколько примеров кода и сравнили с методом extend().

Метод append() применяется к спискам (то есть к list‘ам) в Python и используется для добавления нового элемента в конец списка. Это одна из самых популярных операций.

Метод append() — это операция in-place. Это значит, что метод не возвращает новый список. Он используется только для добавления элементов в конец списка.

append() позволяет расширить список без его пересоздания заново. Обычно метод используется, если программа должна динамически обновлять список.

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

  1. Синтаксис append() в Python
  2. Добавление новых элементов в список
  3. Создание списка через цикл с использованием append()
  4. Добавление вложенных списков
  5. Добавление элемента только при выполнении условия
  6. Конкатенация списков с использованием append()
  7. Отличие append() от extend()

Синтаксис append() в Python

Пример синтаксиса append():

			# Пример использования метода append()
my_list = [1, 2, 3]
my_list.append(4)
print(my_list)  # Output: [1, 2, 3, 4]
		

В этом примере:

  1. Создаётся список my_list с элементами 1, 2, 3.
  2. Метод append() добавляет элемент 4 в конец списка.
  3. Вывод my_list показывает, что новый элемент успешно добавлен в конец списка.

Вот, собственно, и всё. Всё очень просто.

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

Конечно, append() — это не rocket science сам по себе. Гораздо интереснее его применение на практике: от создания вложенных списков до циклического обновления оных.

Рассмотрим четыре примера, в которых append() выполняет различные задачи.

Добавление новых элементов в список

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

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

			my_list = [10, 20, 30]
my_list.append(40)
# Результат: [10, 20, 30, 40]
		

Создание списка через цикл с использованием append()

С основой разобрались. Теперь посмотрим, как создать обновление списка с несколькими значениями. Не использовать же нам сотню функций для поочередного добавления элементов, в конце концов. Используем старый-добрый цикл.

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

В примере ниже на каждой итерации цикла переменная i содержит текущее значение из диапазона range(5), то есть значения от 0 до 4 (включительно).

Метод append(i) добавляет текущее значение i в конец списка numbers.

Таким образом, при прохождении цикла значения от 0 до 4 добавляются в список numbers, в результате чего создается список [0, 1, 2, 3, 4].

			# Создание списка через цикл
numbers = []
for i in range(5):
    numbers.append(i)
# Результат: [0, 1, 2, 3, 4]
		

В этом примере создается пустой список numbers с помощью пустых квадратных скобок [].

Затем запускается цикл for, который перебирает значения от 0 до 4 (5 не включительно) с помощью range(5).

На каждой итерации цикла текущее значение i добавляется в список numbers с использованием метода append().

Добавление вложенных списков

Метод append() может работать и с вложенными списками, а не только с простыми. В примере ниже метод добавляет новый элемент (вложенный список [5, 6]) в конец списка nested_list.

			nested_list = [[1, 2], [3, 4]]
nested_list.append([5, 6])
# Результат: [[1, 2], [3, 4], [5, 6]]
		

Итак, у нас был список nested_list, внутри которого уже были два вложенных списка [[1, 2], [3, 4]].

Когда мы вызвали метод append([5, 6]) для списка nested_list:

  1. Новый вложенный список [5, 6] добавился в конец списка nested_list.
  2. Вложенный список стал содержать элементы [1, 2], [3, 4] и [5, 6].

Простой список добавляется во вложенный список как отдельный одинарный элемент.

Добавление элемента только при выполнении условия

Вы можете добавить условие для использования append(). Если условие выполняется или если условия нет, append() добавляет элемент в конец списка. Всё как обычно.

			temperatures = [25, 30, 18, 22, 27]
hot_days = []
for temp in temperatures:
    if temp > 25:
        hot_days.append(temp)
# Результат: hot_days = [30, 27]
		

В этом примере, если temp больше 25, то метод append() добавляет элементы в конец списка numbers. В нашем случае, это 30 и 27.

Конкатенация списков с использованием append()

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

			list1 = [1, 2, 3]
list2 = [4, 5, 6]
list1.append(list2)
# Результат: list1 = [1, 2, 3, [4, 5, 6]]
		

Результат этого кода — list1 = [1, 2, 3, [4, 5, 6]]. Теперь list2 стал элементом последнего элемента списка list1.

Вы ещё не забыли, что append() добавляет только один элемент в конец списка? Именно поэтому мы получаем не множество [1, 2, 3, 4, 5, 6] в итоге выполнения кода. append() считает, что передаваемый им список [4, 5, 6] является отдельным одинарным элементом.

Если бы мы хотели выполнить конкатенацию списков в привычном понимании и получить множество [1, 2, 3, 4, 5, 6], нам пришлось бы использовать оператор += или метод extend() вместо append().

Рассмотрим этот метод ниже.

Отличие append() от extend()

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

			list1 = [1, 2, 3]
list2 = [4, 5]
list1.extend(list2)
print(list1)  # Output: [1, 2, 3, 4, 5]
		

Таким образом, метод extend() объединяет содержимое двух списков, тогда как метод append() просто добавляет новый элемент в конец списка.

Дело в том, что append() добавляет один элемент, в то время как extend() добавляет все элементы переданного списка поочередно.

Следите за новыми постами
Следите за новыми постами по любимым темам
5К открытий8К показов