Зачем нужны срезы

Срезы – это строковая операция для получения подстроки или некоторой части списка.

В Python строка (скажем, текст) начинается с индекса 0, а n-й символ сохраняется в позиции text[n-1]. Кроме того, Python также может выполнять обратную индексацию (в обратном направлении), с помощью отрицательных чисел.

В Python есть специальная функция-конструктор, которая генерирует объект среза, — slice(). Результатом ее работы является набор индексов, заданных диапазоном (startstopstep).

Метод 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, Источник

Примеры ответов: