Список гарантированно является пустым списком, если список предшествует списку ?

Учебник Python объясняет поведение среза, когда индексы отрицательные, но я не могу найти документацию, описывающую поведение, когда конечный индекс предшествует индексу начала. (Я также рассмотрел нотацию пояснения Python , и, возможно, я недостаточно читаю, но ответы там, похоже, не затрагивают этот вопрос.)

Поведение, которое я наблюдаю, заключается в том, что возвращается пустой список, что представляется мне разумным. Однако мне также представляется разумным, чтобы это возвращало список элементов между i и j в обратном порядке или просто вызывало исключение.

list[i:j] гарантированно является пустым списком, если list[j] предшествует list[i] ?

One Solution collect form web for “Список гарантированно является пустым списком, если список предшествует списку ?”

Да, если j <= i истинно, результирующий срез пуст для стандартных типов Python . Чтобы получить результаты в обратном порядке, вам нужно добавить отрицательный шаг:

 list[i:j:-1] 

потому что явный лучше, чем неявный .

Это описано в разделе «Операции общей последовательности» , сноска 4:

Кусочек s от i до j определяется как последовательность элементов с индексом k, такая что i <= k < j . Если i или j больше len(s) , используйте len(s) . Если i опущено или None , используйте 0 . Если j опущено или None , используйте len(s) . Если i больше или равно j , срез пуст.

Смелый акцент мой.

Пользовательские типы могут свободно интерпретировать это по-разному.

  • Обратная строка: string работает, но строка и другие не
  • Передача синтаксиса среза Python вокруг функций
  • Нарезка списка на Python без создания копии
  • В чем разница между = b и a = b
  • Извлечение элементов списка на нечетных позициях
  • Инвертировать срез в python
  • Индекс Python вне диапазона в разрезе списка
  • Python: Получить список из списка
  •  
    Interesting Posts for Van-Lav

    backports / lzma / _lzmamodule.c: 115: 18: фатальная ошибка: lzma.h: нет такого файла или каталога

    сортировать строки в текстовом файле, но использовать только первые N символов

    проблемы с памятью при установке пакетов на сервере Ubuntu

    При проверке, нет ли элемента в списке, почему этот код не работает – если элемент в списке == False:

    Установить lxml на Centos 7 – ошибка: команда 'gcc' не удалась с статусом выхода 4

    Почему «кроме исключения» не улавливает SystemExit?

    регулярное выражение python, вставляющее пробел между пунктуацией и буквами

    «Введите действительную дату» Ошибка в Django Forms DateField

    Удаление элементов из списка при повторении без использования дополнительной памяти в Python

    html разбор с lxml, когда нет корневого тега

    Удаление повторяющихся символов из строки

    Могу ли я настроить графические интерфейсы Tkinter так, как вы создаете HTML с помощью CSS?

    Получение всех аргументов и значений, переданных функции Python

    Пересечения 3D-полигонов в python

    Проверьте, произошло ли изменение в re.sub

    Python - лучший язык программирования в мире.