파이썬에서 문자열을 하위 문자열로 묶어 세 번째 문자에서 문자열 끝까지 새로운 문자열을 얻는 방법이 있습니까?
어쩌면 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)
따라서 매개 변수는 beginning
및 LENGTH
입니다.
그러나 파이썬의 행동은 다릅니다. END (!) 다음에 시작과 끝이 예상됩니다. 초보자에게는 눈에 잘 띄지 않습니다. 따라서 Substr (s, starting, LENGTH)의 올바른 대체는
s = s[ beginning : beginning + LENGTH]
답변
이를 달성하는 일반적인 방법은 문자열 슬라이싱입니다.
MyString[a:b]
인덱스 a에서 (b-1)까지의 하위 문자열을 제공합니다.
답변
전체 (얕은) 사본 인 한 가지 예가 여기서 누락 된 것 같습니다.
>>> x = "Hello World!"
>>> x
'Hello World!'
>>> x[:]
'Hello World!'
>>> x==x[:]
True
>>>
이것은 시퀀스 유형의 사본 (인턴 된 문자열이 아님)을 작성하는 데 사용되는 일반적인 관용구입니다 [:]
. 얕은 목록을 복사, 명백한 이유없이 사용되는 파이썬 목록 조각 구문을 참조하십시오 .
답변
파이썬에서 문자열을 부분 문자열로 묶어 세 번째 문자에서 문자열 끝까지 새로운 문자열을 얻는 방법이 있습니까?
어쩌면
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'
슬라이스에 start를 포함 시키지만 stop까지는 포함하지 않습니다.
단계가 None
이면 기본적으로 슬라이스가 1
단계에 사용됩니다. 음의 정수로 밟으면 파이썬은 끝에서 시작으로 갈만큼 똑똑합니다.
>>> myString[::-1]
'0987654321'
슬라이스 표기법 질문 설명에 대한 답변 에서 슬라이스 표기법을 자세히 설명합니다.
답변
“끝”을 제외하고 바로 거기에 있습니다. 이것을 슬라이스 표기법이라고합니다. 예제는 다음과 같아야합니다.
new_sub_string = myString[2:]
두 번째 매개 변수를 생략하면 암시 적으로 문자열의 끝입니다.