Python
Как добавить в список элемент: append, extend и insert в Python
В Python список можно менять после создания: добавлять элементы, удалять, заменять, сортировать и фильтровать. Чтобы добавить один новый элемент в конец списка, чаще всего используют append()
Но рядом есть похожие команды extend() и insert(), поэтому важно понимать, чем они отличаются. append() добавляет один объект, extend() добавляет несколько элементов из другого списка, insert() вставляет элемент в конкретную позицию
Короткий ответ
Добавить один элемент в конец списка
tasks = ["написать код", "проверить"]
tasks.append("сохранить")
print(tasks)
Результат
['написать код', 'проверить', 'сохранить']
Как добавить значение из input
В учебных задачах часто нужно спросить пользователя и добавить введенное значение в список
tasks = []
task = input("Введите задачу: ")
tasks.append(task)
print(tasks)
Если пользователь введет прочитать урок, список станет таким
['прочитать урок']
Здесь input() возвращает строку, и append() добавляет эту строку в список
Как добавить несколько элементов
Если нужно добавить сразу несколько элементов из другого списка, используйте extend()
numbers = [1, 2, 3]
numbers.extend([4, 5, 6])
print(numbers)
Результат
[1, 2, 3, 4, 5, 6]
Если вместо extend() использовать append(), список добавится как один вложенный элемент
numbers = [1, 2, 3]
numbers.append([4, 5, 6])
print(numbers)
Результат
[1, 2, 3, [4, 5, 6]]
Иногда это нужно, но чаще новичок получает вложенный список случайно
Как вставить элемент в середину
Чтобы вставить элемент в конкретную позицию, используйте insert(index, value)
names = ["Анна", "Мария"]
names.insert(1, "Динар")
print(names)
Результат
['Анна', 'Динар', 'Мария']
Индекс 1 означает позицию перед вторым элементом. В Python индексы начинаются с нуля
Как добавить элемент в список чисел
Если пользователь вводит число, его нужно преобразовать через int() или float()
numbers = []
text = input("Введите число: ")
number = int(text)
numbers.append(number)
print(numbers)
Если не сделать int(), в списке будет строка "10", а не число 10
Это особенно важно, если потом вы собираетесь считать сумму
numbers = [10, 20]
text = input("Введите число: ")
numbers.append(int(text))
print(sum(numbers))
Как добавить элементы в цикле
Можно несколько раз спрашивать пользователя и складывать значения в список
tasks = []
while True:
task = input("Введите задачу или stop: ")
if task == "stop":
break
tasks.append(task)
print("Ваши задачи:")
for task in tasks:
print("-", task)
Такой код уже похож на маленькое консольное приложение: пользователь вводит данные, программа сохраняет их в список и выводит результат
Мини-практика
Создайте пустой список покупок. Спросите у пользователя три товара и добавьте каждый через append(). После этого выведите список покупок построчно
Затем попробуйте добавить сразу список ["чай", "кофе"] через append() и через extend(). Сравните результат, потому что именно здесь чаще всего появляется путаница
Частые ошибки
Ошибка первая: писать items = items.append(value). Метод append() меняет список на месте и возвращает None, поэтому присваивать результат не нужно
Ошибка вторая: использовать append() для добавления нескольких элементов и случайно получать вложенный список
Ошибка третья: забывать преобразовать ввод в число. input() всегда возвращает строку
Ошибка четвертая: путать индекс в insert() с номером элемента в обычной речи. Первый элемент имеет индекс 0
Что почитать дальше по Python
Если нужен общий маршрут по теме, откройте рубрику Python. Для соседних задач пригодятся эти разборы:
- append в Python: как добавить элемент в список и не поймать None
- Как заменить элемент в списке Python: по индексу, по значению и в цикле
- Как открыть элемент в новой вкладке Python: Selenium и рабочий пример
- Как создать массив в Python: список, array и NumPy простыми словами