Основные понятия
Нарезка Python — это особенно распространенная функция, в основном используемая для оценки элементов списка. Использование срезов также может сделать ваш код очень похожим на Python.
Основная декларация нарезки заключается в следующем, предполагая, что сейчас есть список, названный ALIST:
alist = [0,1,2,3,4]
Основная форма синтаксиса фрагмента:
alist[start:stop:step]
Видно, что есть три параметра для операции нарезки списка, а именно:
- старт: исходное положение
- стоп: стоп-позиция
- шаг: размер шага
Эти три параметра являются необязательными параметрами, означающими индекс списка, то есть индекс. Значение параметра шага по умолчанию равно 1. Проявления следующие:
alist[start:stop]
alist[start:]
alist[:stop]
alist[:]
- Первый метод задает параметры запуска и остановки и берет элементы alist из нижнего индекса, указанного start, до stop-1, например
a[1:3]
Результат[1,2]
. - Второй метод начнет с нижнего индекса, указанного start, и возьмет оставшиеся элементы alist. Например
a[1:]
получите[1,2,3,4]
. - Третий метод возьмет элемент списка с начала списка до тех пор, пока нижний индекс не станет стоп-1, например
a[:4]
получит результат[0,1,2,3]
- Четвертый метод не указывает параметры запуска и остановки, и возвращается весь список.
должны знать о том,:stop
представляет первое значение не в выбранном срезе,alist[start:stop]
Значение аналогично диапазону значений в математике[start, stop)
, поэтому, когда размер шага по умолчанию равен 1,start-stop
Результатом является количество взятых элементов.
Использование отрицательного значения
Параметры запуска и остановки отрицательные
Значения start и stop могут быть отрицательными, указывая, что значение начинается с конца списка, а не с начала. Например:
alist[-1]
alist[-3:]
alist[:-1]
- Первый способ записи означает, что берется последнее значение alist и на выходе получается 4.
- Второй способ записи означает, что, начиная с предпоследнего значения alist, берутся оставшиеся элементы списка, и на выходе получается
[2,3,4]
. - Третий способ записи означает, что элементы в списке берутся с начала alist до тех пор, пока нижний индекс не станет последним значением, а вывод будет
[0,1,2,3]
.
Параметр шага отрицательный
Когда шаг отрицательный, это означает перевернуть список.Простейший пример выглядит следующим образом:
alist[::-1]
Выход[4,3,2,1,0]
. Этот пример фактически возвращается в следующей форме:
[alist[-1], alist[-1-step], ..., alist[0]]
То есть, начиная с последнего элемента и добавляя размер шага к каждому шагу, поскольку размер шага здесь является отрицательным числом, это вычитание до начала алиста. Зная этот принцип, вы можете понять некоторые сложные методы записи с параметрами запуска и остановки, такие как:
Начальный параметр указан
alist[1::-1]
На самом деле это, как вернуться:
[alist[1], alist[1-step], ..., alist[0]]
Поэтому возвращается то, что[1,0]
Параметр остановки указан
alist[:1:-1]
Это фактически возвращает:
[alist[-1], alist[-1-step], ..., alist[stop+1]]
Поэтому возвращается то, что[4, 3, 2]
.
Указаны параметры запуска и остановки.
Обратите внимание, что из-за обратного порядка параметр запуска должен быть больше параметра остановки.
alist[3:1:-1]
Это фактически возвращает:
[alist[start], alist[start-step], ..., alist[stop+1]]
Поэтому возвращается то, что[3,2]
Мы видим, что,
- Если указан начальный параметр, элементы берутся из индекса начального параметра до тех пор, пока не встретится нижний индекс остановки или первый элемент списка.
- Если параметр start не указан, он начинается с последнего элемента списка до тех пор, пока не встретится нижний индекс остановки или первый элемент списка.
Суммировать
Синтаксис нарезки чрезвычайно гибкий и может упростить ваш код, если вы все сделаете правильно. Следует отметить, что Python также предоставляет класс slice для создания слайсов, например:
alist[start:stop:step]
на самом деле эквивалентно
alist[(slice(start,stop,step))]