Методы добавления и удаления элементов

Слайд 1

🧩 Методы добавления и удаления элементов

Научимся добавлять и удалять элементы списка. Это делает список гибкой и динамичной структурой данных.

🔹 Метод append()

Метод append() добавляет один элемент в конец списка.

numbers = [1, 1, 2, 3, 5, 8, 13]
numbers.append(21)
numbers.append(34)
print(numbers)
# [1, 1, 2, 3, 5, 8, 13, 21, 34]

Если список пуст, метод append() всё равно работает:

numbers = []
numbers.append(1)
numbers.append(2)
numbers.append(3)
print(numbers)
# [1, 2, 3]
⚠️ Мы не можем использовать индекс для добавления элемента в пустой список:
numbers = []
numbers[0] = 1  # Ошибка!
# IndexError: list assignment index out of range

🔹 Метод extend()

Метод extend() добавляет в конец списка все элементы другого списка.

numbers = [0, 2, 4, 6, 8, 10]
odds = [1, 3, 5, 7]
numbers.extend(odds)
print(numbers)
# [0, 2, 4, 6, 8, 10, 1, 3, 5, 7]

Разница между append() и extend() особенно заметна при добавлении строки:

words1 = ['iq option', 'stepik', 'beegeek']
words2 = ['iq option', 'stepik', 'beegeek']

words1.append('python')
words2.extend('python')

print(words1)
print(words2)

Результат:

['iq option', 'stepik', 'beegeek', 'python']
['iq option', 'stepik', 'beegeek', 'p', 'y', 't', 'h', 'o', 'n']

append() добавил всю строку как один элемент, а extend() — разбил строку на символы и добавил их по отдельности.

🔹 Удаление элементов — оператор del

С помощью del можно удалить элемент списка по индексу:

numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9]
del numbers[5]
print(numbers)
# [1, 2, 3, 4, 5, 7, 8, 9]

Список перестраивается, и все элементы справа смещаются.

Удаление диапазона (среза):
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9]
del numbers[2:7]
print(numbers)
# [1, 2, 8, 9]
Удаление элементов по шаблону:
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9]
del numbers[::2]
print(numbers)
# [2, 4, 6, 8]
💡 Синтаксис del отличается от вызова метода — аргумент не передаётся в скобках, а просто указывается индекс или срез.

📘 Примечания

  • В отличие от строк, многие методы списков изменяют сам список и возвращают None.
animals = ['cat', 'dog', 'snake']
new_animals = animals.append('bird')

print(animals)      # ['cat', 'dog', 'snake', 'bird']
print(new_animals)  # None

Значение None в Python означает «ничего».

  • Чтобы изменить элементы списка в цикле, нужно обращаться к ним по индексу:
numbers = [4, 7, -2, 1, 6]

for i in range(len(numbers)):
    numbers[i] *= 2

print(numbers)
# [8, 14, -4, 2, 12]

Если просто изменить переменную цикла, исходный список не изменится:

numbers = [4, 7, -2, 1, 6]

for num in numbers:
    num = num * 2

print(numbers)
# [4, 7, -2, 1, 6]
⚙️ Чтобы реально обновить список — всегда работай через индексы или методы списков.