Методы списков: append, extend, insert, pop, remove

Методы списков: append, extend, insert, pop, remove

В предыдущем уроке вы создавали списки и читали их элементы. Теперь изучим, как изменять список: добавлять и удалять элементы. Список в Python — объект, а у объектов есть методы. Вызов метода: список.метод(аргументы).

append: добавить в конец

append(elem) добавляет один элемент в конец списка. Список изменяется на месте (in-place):

fruits = ["яблоко", "банан"]
fruits.append("вишня")
print(fruits)   # ['яблоко', 'банан', 'вишня']

fruits.append("апельсин")
print(fruits)   # ['яблоко', 'банан', 'вишня', 'апельсин']

append возвращает None — не результат, а изменяет список напрямую. Типичная ошибка:

fruits = ["яблоко"]
fruits = fruits.append("банан")   # fruits теперь None!
print(fruits)   # None — ошибка! append возвращает None

Просто пишите fruits.append("банан") — без присваивания.

extend: добавить несколько элементов

extend(iterable) добавляет все элементы итерируемого объекта (списка, строки, range) в конец:

a = [1, 2, 3]
b = [4, 5, 6]

a.extend(b)
print(a)   # [1, 2, 3, 4, 5, 6]

a.extend(range(7, 10))
print(a)   # [1, 2, 3, 4, 5, 6, 7, 8, 9]

Разница между append и extend:

nums = [1, 2, 3]

nums.append([4, 5])    # добавит [4, 5] как один элемент
print(nums)   # [1, 2, 3, [4, 5]]

nums2 = [1, 2, 3]
nums2.extend([4, 5])   # добавит 4 и 5 по отдельности
print(nums2)  # [1, 2, 3, 4, 5]

Оператор += для списков работает как extend:

a = [1, 2]
a += [3, 4]   # эквивалентно a.extend([3, 4])
print(a)      # [1, 2, 3, 4]

insert: вставить по индексу

insert(index, elem) вставляет элемент перед указанным индексом:

nums = [1, 2, 4, 5]
nums.insert(2, 3)   # вставить 3 перед индексом 2
print(nums)   # [1, 2, 3, 4, 5]

nums.insert(0, 0)   # вставить в начало
print(nums)   # [0, 1, 2, 3, 4, 5]

Если индекс >= длины списка — элемент добавляется в конец (как append). Если отрицательный — вставка относительно конца.

pop: удалить по индексу и вернуть

pop(index) удаляет элемент по индексу и возвращает его. Без аргумента удаляет и возвращает последний элемент:

fruits = ["яблоко", "банан", "вишня", "апельсин"]

last = fruits.pop()   # удалить последний
print(last)    # апельсин
print(fruits)  # ['яблоко', 'банан', 'вишня']

second = fruits.pop(1)   # удалить по индексу 1
print(second)  # банан
print(fruits)  # ['яблоко', 'вишня']

pop удобен для реализации стека (LIFO — последний пришёл, первый ушёл):

stack = []
stack.append(1)
stack.append(2)
stack.append(3)
print(stack.pop())   # 3
print(stack.pop())   # 2

remove: удалить по значению

remove(value) удаляет первое вхождение указанного значения:

colors = ["красный", "синий", "зелёный", "синий"]
colors.remove("синий")
print(colors)   # ['красный', 'зелёный', 'синий'] — удалён первый "синий"

Если значения нет в списке — ValueError:

# colors.remove("жёлтый")  # ValueError: list.remove(x): x not in list

Проверяйте наличие перед удалением:

if "жёлтый" in colors:
    colors.remove("жёлтый")

Другие полезные методы

nums = [3, 1, 4, 1, 5, 9, 2]

# clear: очистить список
nums.clear()
print(nums)   # []

nums = [3, 1, 4, 1, 5, 9, 2]

# count: подсчёт вхождений значения
print(nums.count(1))   # 2

# index: индекс первого вхождения
print(nums.index(5))   # 4

# reverse: перевернуть список на месте
nums.reverse()
print(nums)   # [2, 9, 5, 1, 4, 1, 3]

# copy: создать мелкую копию
backup = nums.copy()

Сводная таблица

МетодЧто делаетВозвращает
append(x)добавить x в конецNone
extend(iterable)добавить все элементыNone
insert(i, x)вставить x перед индексом iNone
pop(i=-1)удалить и вернуть элементудалённый элемент
remove(x)удалить первое вхождение xNone
clear()очистить списокNone
count(x)подсчёт вхожденийint
index(x)индекс первого вхожденияint
reverse()перевернуть на местеNone
copy()мелкая копияновый список

Проверь себя

Что произойдёт с items после выполнения?

items = [1, 2, 3, 4, 5]
items.insert(2, 99)
items.pop(0)
items.remove(4)
print(items)
  • insert(2, 99)[1, 2, 99, 3, 4, 5]
  • pop(0) → удаляет 1[2, 99, 3, 4, 5]
  • remove(4) → удаляет 4[2, 99, 3, 5]

Итог

  • append(x) — добавить один элемент в конец.
  • extend(iterable) — добавить несколько элементов; += делает то же самое.
  • insert(i, x) — вставить перед индексом i.
  • pop(i) — удалить и вернуть по индексу; pop() без аргумента — последний.
  • remove(x) — удалить первое вхождение значения; ValueError, если нет.
  • Большинство методов изменяют список на месте и возвращают None.

В следующем уроке познакомимся с кортежами — неизменяемой версией списка — и научимся делать распаковку.

Попробуйте интерактивную версию

Практические задачи, квизы и AI-наставник — бесплатный старт без карты

Перейти к практике