Зачем нужны срезы
Срезы – это строковая операция для получения подстроки или некоторой части списка.
В Python строка (скажем, текст) начинается с индекса 0, а n-й символ сохраняется в позиции text[n-1]
. Кроме того, Python также может выполнять обратную индексацию (в обратном направлении), с помощью отрицательных чисел.
В Python есть специальная функция-конструктор, которая генерирует объект среза, — slice()
. Результатом ее работы является набор индексов, заданных диапазоном (start
, stop
, step
).
Метод slice()
принимает три параметра: start
– номер для начала среза, stop
— число, обозначающее конец среза, и step
– шаг, с которым мы будем передвигаться по объекту. Шаг по умолчанию равен 1, то есть мы перебираем элементы по очереди, ничего не пропуская.
# «Берём срез строки» или
# «Создаем объект среза и применяем к строке»
'самоходка'[4:1:-1] # 'хом'
slice_ = slice(2, 4)
slice_.start # 2
slice_.stop # 4
slice_.step # None
list_ = [5, 6, 7, 8, 9]
list_[slice_]
list_[2:4]
# [7, 8]
list_[slice(1, None)]
list_[1:]
# [6, 7, 8, 9]
list_[slice(None, -1)]
list_[:-1]
# [5, 6, 7, 8]
list_[slice(None, None, 2)]
list_[::2]
# [5, 7, 9]
list_[slice(None)]
list_[::]
# [5, 6, 7, 8, 9]
list_[slice(2)]
list_[:2:]
# [5, 6]
list_[slice(None, None, -1)]
list_[::-1]
# [9, 8, 7, 6, 5]
Oct. 11, 2023, Источник