Есть ли способ подстроки строки в Python, чтобы получить новую строку от 3-го символа до конца строки?
Может быть, как myString[2:end]
?
Да, это действительно работает, если вы назначаете или связываете имя, end
, с константным синглтоном, None
:
>>> end = None
>>> myString = '1234567890'
>>> myString[2:end]
'34567890'
Нотация среза имеет 3 важных аргумента:
Их значения по умолчанию, если они не указаны, равны 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'
Я подробно объясняю нотацию срезов в своем ответе на вопрос «Объяснить нотацию срезов».
Этот содержит четкое объяснение pythoncentral.io/cutting-and-slicing-strings-in-python