Member 13508014 Ответов: 1

Основной вопрос о списке в Python


Л=[1,2,3,4,5]

print L[4:1] #выводит пустой список. Нельзя траверсировать в обратном направлении.

Как L[::-1] может перемещаться в обратном направлении?

Что я уже пробовал:

Попытка понять обход списка в python с помощью различных индексов/срезов.

1 Ответов

Рейтинг:
7

Richard MacCutchan

Видеть 3. неофициальное введение в Python — списки[^].

[редактировать]
Отсутствующие начальные и конечные значения указывают на то, что он должен использовать весь список. Установка значения шага равным -1 приводит к обратному изменению значений, поэтому он рассматривает его как

list[end:start:step]

Однако это работает только для типов, которые имеют __reversed__() метод. Это просто сокращенный способ вызова list.reverse();.
[/редактировать]


Member 13508014

Я прочел статью. У меня все те же сомнения.

Richard MacCutchan

Посмотрите на предыдущие разделы, где объясняется, как рассматриваются срезы. На самом деле, я бы посоветовал вам проработать весь учебник, вы узнаете гораздо больше, чем просто размещаете здесь вопросы.

Member 13508014

Я понял приведенные там примеры. Все приведенные там примеры позволяют понять, как python поддерживает список как единый связанный список. Вот почему L[4:1] дает пустой список, потому что односвязный список не может быть пройден обратным образом. Но если это так, то как L[start:end:-1] может перемещаться в обратном направлении-вот чего я не понял. Это не объясняется в статье.

Richard MacCutchan

См. раздел обновленное решение.

Member 13508014

Отлично. Это прояснило мои сомнения.