Подробное объяснение синтаксиса фрагментов Python

Python

Основные понятия

Нарезка 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))]