Заменить n-элементов списка

Как заменить не последний элемент списка, а сразу три?

a=[1,2,3,4,5,6,7]
a[-1] = 0

Пока только приходит так:

a=[1,2,3,4,5,6,7]
a[-1] = 0
a[-2] = 0
a[-3] = 0

А какой самый красивый, компактный и быстрый способ?


Ответы (1 шт):

Автор решения: GrAnd

Компактно можно через срез:

a[-3:] = [0]*3

a[-3:] - адресует последние 3 элемента списка.
[0]*3 - создаёт список из трёх одинаковых элементов. Тоже самое, что и [0,0,0].
Ну а дальше одно присваивается другому, т.е. подсписок из последних трёх элементов заменяется на новый подсписок из трёх нулей. В результате a станет содержать список [1,2,3,4,0,0,0].

→ Ссылка