append(x)– дописывает один элементxв конец списка. Длина становится на 1 больше, номера старых элементов не меняются.
Три способа добавить различаются тем, сколько элементов добавляется и куда:
| Метод | Что добавляет | Куда |
|---|---|---|
a.append(x) |
один элемент x |
в конец |
a.extend(seq) |
все элементы seq по очереди |
в конец |
a.insert(i, x) |
один элемент x |
на позицию i, остальные сдвигаются вправо |
Главная путаница – append против extend. a.append([7, 8]) добавит один элемент, и этим элементом будет целый список. a.extend([7, 8]) добавит два элемента.
insert() меняет номера всех элементов правее точки вставки. Индекс за границей ошибки не даёт – значение прижимается к краю: insert(100, x) допишет в конец.
marks = [5, 4]
marks.append(3) # [5, 4, 3]
marks.extend([5, 4]) # [5, 4, 3, 5, 4]
marks.insert(1, 2) # [5, 2, 4, 3, 5, 4]
print(marks)
a = [1, 2]
a.append([7, 8])
print(a, len(a)) # [1, 2, [7, 8]] 3 – один элемент
b = [1, 2]
b.extend([7, 8])
print(b, len(b)) # [1, 2, 7, 8] 4 – два элемента
names = ['Аня', 'Вера']
names.insert(1, 'Борис')
print(names) # ['Аня', 'Борис', 'Вера']
names.insert(100, 'Яна')
print(names[-1]) # Яна – слишком большой индекс
# прижимается к концу