Как работает эта нарезка: `my_string [3: 3 + 5]` в Python? - PullRequest
0 голосов
/ 11 ноября 2019

Я нашел это в коде, переданном мне кем-то, поэтому я хочу это понять:

my_string = "sulakshana"
truck_id = my_string[3:3 + 5]

Вывод:

'aksha'

Здесь я понимаю, что:
Первый 3 означает начало слева и продвижение на 3 шага вперед.
5 означает включение 5 символов с этого направления.

Вопрос: О чем этот второй 3? Как это помогает получить этот вывод?

Ответы [ 2 ]

3 голосов
/ 11 ноября 2019

Вторая 3 добавляется вместе с 5, чтобы разделить строку с 3-го по 8-й индексы (включительно 3-го и исключительно 8-го). Это эквивалентно aa[3:8].

Так что, я бы не сказал, что это «помогает» в любом случае. Все зависит от того, чего вы хотите достичь с помощью нарезки.

2 голосов
/ 11 ноября 2019

В основном, когда вы говорите aa[3:3 + 5], оно конвертируется в aa[3:8], так как 3 + 5 = 8. Он начнется с 3-го элемента, и, поскольку python индексирует с 0, третий элемент - a. Индекс окончания не является включающим, поэтому он возрастет до 7, что дает вам 'aksha'.

...