Вопрос-Ответ

How do I get a substring of a string in Python? [duplicate]

Как мне получить подстроку строки в Python?

Я хочу получить новую строку от третьего символа до конца строки, например, myString[2:end]. Если опустить вторую часть, означает "до конца", и если опустить первую часть, начинается ли она с начала?

Переведено автоматически
Ответ 1
>>> x = "Hello World!"
>>> x[2:]
'llo World!'
>>> x[:2]
'He'
>>> x[:-2]
'Hello Worl'
>>> x[-2:]
'd!'
>>> x[2:-2]
'llo Worl'

Python называет эту концепцию "нарезкой", и она работает не только со строками. Взгляните сюда, чтобы получить исчерпывающее представление.

Ответ 2

Просто для полноты картины, поскольку никто другой об этом не упоминал. Третий параметр фрагмента массива - это шаг. Таким образом, обращение строки так же просто, как:

some_string[::-1]

Или выбор альтернативных символов был бы:

"H-e-l-l-o- -W-o-r-l-d"[::2] # outputs "Hello World"

Возможность перемещаться вперед и назад по строке обеспечивает согласованность с возможностью фрагментации массива с начала или конца.

Ответ 3

Substr() обычно (т. Е. PHP и Perl) работает таким образом:

s = Substr(s, beginning, LENGTH)

Итак, параметрами являются beginning и LENGTH.

Но поведение Python отличается; он ожидает начало и одно за другим КОНЕЦ (!). Новичкам это трудно заметить. Итак, правильная замена Substr(s, beginning, LENGTH )

s = s[ beginning : beginning + LENGTH]
Ответ 4

Распространенный способ добиться этого - нарезать строку.

MyString[a:b] выдает вам подстроку от индекса a до (b - 1).

python string