Модификация срезов (slices) в списках Python
В дополнение к доступу к элементам с использованием нарезки (slicing), вы также можете изменить содержимое списка, присвоив новые значения срезу.
Присваивание значений срезу
Для присвоения новых значений срезу вы можете использовать тот же синтаксис, что и для доступа к срезу, но вместо того чтобы просто прочитать значения, вы присваиваете новые значения срезу.
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
my_list[2:6] = ['a', 'b', 'c', 'd']
print(my_list) ## Output: [1, 2, 'a', 'b', 'c', 'd', 7, 8, 9, 10]
В этом примере срез my_list[2:6]
заменяется новыми значениями ['a', 'b', 'c', 'd']
.
Изменение длины среза
Вы также можете изменить длину среза, присвоив ему разное количество элементов.
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
my_list[2:6] = ['a', 'b', 'c']
print(my_list) ## Output: [1, 2, 'a', 'b', 'c', 6, 7, 8, 9, 10]
В этом примере срез my_list[2:6]
заменяется более коротким списком из трех элементов, что фактически удаляет два элемента из исходного списка.
Вставка элементов с использованием нарезки
Вы также можете использовать нарезку для вставки новых элементов в список, присвоив итерируемый объект (например, список) срезу с длиной 0.
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
my_list[2:2] = ['a', 'b', 'c']
print(my_list) ## Output: [1, 2, 'a', 'b', 'c', 3, 4, 5, 6, 7, 8, 9, 10]
В этом примере срез my_list[2:2]
имеет длину 0, поэтому новые элементы ['a', 'b', 'c']
вставляются по индексу 2.
Понимая, как модифицировать срезы в списках Python, вы можете выполнять широкий спектр задач по обработке списков, делая ваш код более эффективным и гибким.