Что происходит, когда начальное значение команды python substring отрицательно?

#python

#python

Вопрос:

Пример:

 mystring = " ... some string ... "
mystring[-50:40]  # <--- what does this mean?
  

Комментарии:

1. Почему бы не попробовать и не посмотреть?

2. -1 для ленивого отношения. Вы можете выяснить это сами, прежде чем спрашивать

3. этот вопрос совершенно не подходит пользователю 72023452354…

4. @RestRisiko: вы слишком суровы. Пытаться и видеть — это не то же самое, что понимать, что происходит. Как это бывает, это конкретное поведение Python не является тривиальным, и об этом стоит спросить.

5. Речь идет не о том, чтобы быть тривиальным — речь идет о том, чтобы продемонстрировать минимальное количество мотивации, пытаясь делать что-то о — больше ничего, ничего другого. И прекратите жаловаться на людей с нулевой мотивацией. Неподходящий человек для работы….

Ответ №1:

Отрицательные индексы в срезе подсчитываются справа. Да, даже для начального значения.

 >>> '12345'[-4:4]
'234'
  

Комментарии:

1. У меня неприятное ощущение, что где-то я написал код Python, который предполагал что-то другое…

Ответ №2:

Отрицательные индексы, как правило, подразумевают, len(of_this_object) что к отрицательному индексу добавляется. Не имеет значения, являются ли они начальными, конечными или обычными индексами.

Пример:

 some_object[10:-20]
  

интерпретируется как значение:

 some_object[10:len(some_object)-20]
  

Вот почему:

 some_object[-1]
  

означает последний элемент в some_object .