Почему индекс подрезки за пределами диапазона работает в Python?

Почему 'example'[999:9999] приводит к ошибке? Поскольку 'example'[9] делает, какова мотивация этого?

Из этого поведения я могу предположить, что 'example'[3] по существу / внутри не совпадает с 'example'[3:4] , хотя оба результата приводят к одной и той же строке 'm' .

3 Solutions collect form web for “Почему индекс подрезки за пределами диапазона работает в Python?”

Вы в основном ответили на свой вопрос. Нарезка за пределами последовательности (по крайней мере для встроенных) не вызывает ошибки. Это имеет смысл, когда вы об этом думаете. Индексирование возвращает один элемент, но нарезка возвращает подпоследовательность элементов. Поэтому, когда вы пытаетесь индексировать несуществующее значение, ничего не вернуть; но когда вы вырезаете последовательность за пределами границ, вы можете вернуть пустую последовательность.

Также обратите внимание, что между x[3] и x[3:4] существует общая разница. Например:

 >>> [0, 1, 2, 3, 4, 5][3] 3 >>> [0, 1, 2, 3, 4, 5][3:4] [3] 

Причина, по которой они выглядят одинаково в случае строк, заключается в том, что не существует такой вещи, как отдельный символ вне строки; один символ – это всего лишь 1-символьная строка.

Ради добавления ответа, который указывает на надежный раздел документации :

Учитывая выражение среза, подобное s[i:j:k] ,

Кусочек s от i до j с шагом k определяется как последовательность элементов с индексом x = i + n * k, для которых 0 <= n <(ji) / k. Другими словами, индексы i, i + k, i + 2 * k, i + 3 * k и т. Д., Останавливаясь, когда j достигнуто (но никогда не включает j). Когда k положительно, i и j сводятся к len (s), если они больше

если вы пишете s[999:9999] , python возвращает s[len(s):len(s)] с len(s) < 999 и ваш шаг положительный ( 1 – значение по умолчанию).

Нарезка не ограничена – проверяется встроенными типами. И хотя оба ваших примера, похоже, имеют одинаковый результат, они работают по-другому; попробуйте их вместо списка.

  • Python: как добавить строку «ub» к каждой выраженной гласной в строке?
  • Как я могу скопировать строку Python?
  • замена строки python, генерирование всех возможных комбинаций
  • Есть ли способ подстроить строку в Python?
  • Python - переменная должна быть как int, так и str
  • Регулярное выражение для удаления строк из исходного кода
  • Добавить строку в определенной позиции в Python
  • Преобразование списка символов в строку
  • Python - лучший язык программирования в мире.