Есть ли способ подстроки строки в Python, чтобы получить новую строку от 3-го символа до конца строки?
Может быть, как myString[2:end]
?
Да, на самом деле это работает, если вы присваиваете или связываете имя end
постоянному синглтону None
:
>>> end = None
>>> myString = '1234567890'
>>> myString[2:end]
'34567890'
Запись среза имеет 3 важных аргумента:
- 1018 * начать *
- остановка
Их значения по умолчанию, если они не указаны, None
- но мы можем передать их явно:
>>> stop = step = None
>>> start = 2
>>> myString[start:stop:step]
'34567890'
Если выход из второй части означает «до конца», если вы выходите из первой части, начинается ли она с начала?
Да, например:
>>> start = None
>>> stop = 2
>>> myString[start:stop:step]
'12'
Обратите внимание, что мы включаем начало в срез, но мы идем только до остановки, но не включая ее.
Когда шаг равен None
, по умолчанию срез использует 1
для шага. Если вы пошлите с отрицательным целым числом, Python достаточно умен, чтобы идти от конца к началу.
>>> myString[::-1]
'0987654321'
Я подробно объясняю обозначение срезов в мой ответ на вопрос Объяснение обозначений срезов.