Слайд 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]