반응형

파이썬에서 문자열의 하위 문자열을 어떻게 얻을 수 있습니까?


질문

 

나는 세 번째 문자에서 문자열의 끝까지 새로운 문자열을 얻고 싶습니다.MyString [2 : End].두 번째 부분을 생략하면 '끝까지'를 의미합니다. 첫 번째 부분을 생략하면 처음부터 시작합니까?


답변

 

>>> x = "Hello World!"
>>> x[2:]
'llo World!'
>>> x[:2]
'He'
>>> x[:-2]
'Hello Worl'
>>> x[-2:]
'd!'
>>> x[2:-2]
'llo Worl'

파이썬은이 개념을 "슬라이스"하고 단순한 문자열 이상에서 작동합니다.포괄적 인 소개를 보시려면 여기를보십시오.



답변

다른 사람이 언급하지 않은 것처럼 완전성을 위해서.배열 슬라이스에 대한 세 번째 매개 변수는 단계입니다.그렇게 문자열을 반전하는 것은 다음과 같이 간단합니다.

some_string[::-1]

또는 대체 문자를 선택하는 것이 다음과 같습니다.

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

그 문자열을 통해 앞으로 나아가는 능력은 시작 또는 끝에서 슬라이스를 배열 할 수있는 일관성을 유지합니다.



답변

substr () 정상적으로 (즉, PHP 및 perl)이 방법으로 작동합니다.

s = Substr(s, beginning, LENGTH)

따라서 매개 변수는 시작과 길이입니다.

그러나 파이썬의 행동은 다릅니다.그것은 끝나고 끝나기를 기대합니다 (!).이것은 초보자가 발견하기가 어렵습니다.따라서 Substrice (S, Stret, Length)에 대한 올바른 교체는

s = s[ beginning : beginning + LENGTH]


답변

str1='There you are'
>>> str1[:]
'There you are'

>>> str1[1:]
'here you are'

#To print alternate characters skipping one element in between

>>> str1[::2]
'Teeyuae'

#To print last element of last two elements
>>> str1[:-2:-1]
'e'

#Similarly
>>> str1[:-2:-1]
'e'


#Using slice datatype

>>> str1='There you are'
>>> s1=slice(2,6)
>>> str1[s1]
'ere '




답변

이것을 달성하는 일반적인 방법은 문자열 슬라이싱에 의한 것입니다.

myString [A : B]는 인덱스 A에서 (B-1)까지의 하위 문자열을 제공합니다.



답변

text = "StackOverflow"
#using python slicing, you can get different subsets of the above string

#reverse of the string
text[::-1] # 'wolfrevOkcatS' 

#fist five characters
text[:5] # Stack'

#last five characters
text[-5:] # 'rflow'

#3rd character to the fifth character
text[2:5] # 'rflow'

#characters at even positions
text[1::2] # 'tcOefo'
출처:https://stackoverflow.com/questions/663171/how-do-i-get-a-substring-of-a-string-in-python
반응형