Python Срезы: Учимся Работать с Массивами в Python
В Python срезы (slicing) представляют возможность извлекать подмножества элементов (срезы) из последовательностей. Под последовательностью подразумеваются объекты, которые поддерживают итерацию - строки, списки и кортежи.
Общий синтаксис среза выглядит следующим образом:
sequence[start:stop:step]
- **start** - начальный индекс. Если не указан, то по умолчанию используется 0.
- **stop** - конечный индекс, элементы до этого индекса будут извлечены. Если не указан, то по умолчанию используется длина последовательности.
- **step** - шаг, с которым будут извлекаться элементы. Если не указан, то по умолчанию используется 1.
Примеры синтаксиса срезов:
python
s = 'Hello, world!'
# извлекаем первые 5 символов
print(s[:5]) # 'Hello'
# извлекаем символы с индекса 2 до 7 с шагом 2
print(s[2:7:2]) # 'lo,'
# извлекаем все символы с шагом 2 (через один)
print(s[::2]) # 'Hlo ol!'
# извлекаем символы с индекса -6 до конца
print(s[-6:]) # 'world!'
С помощью срезов можно также изменять последовательности:
python
lst = [1, 2, 3, 4, 5]
# заменяем элементы с индексами от 1 до 3
lst[1:4] = [10, 20, 30]
print(lst) # [1, 10, 20, 30, 5]
# удаляем элементы с индексами от 2 до 4
lst[2:5] = []
print(lst) # [1, 10]
Также можно использовать отрицательные индексы в срезах, которые ищут значение с конца последовательности.
Использование срезов позволяет более эффективно работать с последовательностями, так как можно извлекать и модифицировать нужные элементы без необходимости перебирать всю последовательность вручную.