Допустим есть такой список:
>>> a = [1,2,3,4,5,6,7,8,9]
И мы хотим удалить из него элемент с индексом 3, имеющий значение 4. Если попытаться это сделать так:
>>> a[3] = []
, то получим совсем не то, что надо:
>>> a
[1, 2, 3, [], 5, 6, 7, 8, 9]
Другими словами, число 4 было заменено на пустой список.
Однако если указать срез из одного элемента и присвоить ему пустой список, то все сработает:
>>> a[3:4] = []
>>> a
[1, 2, 3, 5, 6, 7, 8, 9]
Еще один вариант, но более длинный — сложить два среза, исключив элемент, который требуется удалить:
>>> a = a[:3] + a[4:]
>>> a
[1, 2, 3, 6, 7, 8, 9]
Ну и наконец самый простой, но не самый очевидный способ:
>>> del a[1]
>>> a
[1, 3, 6, 7, 8, 9]
Вставить можно так:
>>> a
[3, 6, 7, 8, 9]
>>> a[2:2] = [12]
>>> a
[3, 6, 12, 7, 8, 9]
Вставляется список в то место, где находится второй элемент, но не доходя до него. Срез [2:2] — пустой срез.
Вставка с помощью метода insert():
>>> a = [1,2,3,4]
>>> a.insert(1,'a')
>>> a
[1, 'a', 2, 3, 4]
>>> a.insert(1,[10,12])
>>> a
[1, [10, 12], 'a', 2, 3, 4]