Python & Data

Python 문자열 슬라이싱 slicing

softserve 2023. 6. 8. 08:15
반응형

문자열을 조작하는 기본적인 방법은 반복문을 돌리면서 문자열을 이루는 문자 하나 하나에 대해 처리를 하는 것입니다. 자주 사용되는 split이나 replace 같은 함수를 기본 라이브러리에서 제공하기도 합니다.

python에서는 문자열 슬라이싱을 할 수 있는 보다 직관적이고 편리한 방법을 제공하고 있습니다.

string [ start : end : step]

문자열의 뒤, 인덱스를 표시하는 대괄호 [ ] 안에 : 로 구분되는 세 가지 파라미터를 넣을 수 있습니다. 바로 시작위치 start , 종료위치 end 와 변화되는 값의 크기 step 입니다.

위의 표현식은 string이라는 문자열에 대해 인덱스 start부터 시작해서 인덱스를 step만큼 증가시키며 인덱스 end - 1까지의 문자를 반환합니다. start, end가 양수일 때는 0번 인덱스를 기준으로 하며, 음수일 때는 문자열의 마지막 인덱스를 기준으로 합니다.

필요없는 경우에는 각 파라미터를 생략할 수도 있고 아래와 같이 다양한 방식으로 사용할 수 있습니다.

string = "ABCDEF"

print(string[0:2]) # "AB" 0부터 1까지

print(string[1:]) # "BCDEF" 1부터 문자열 마지막까지

print(string[:-2]) # "ABCD" 마지막 인덱스 5에서 2를 뺀 3번 인덱스까지

print(string[::2]) # "ACE" 전체에 대해서 2씩 증가

역순으로 출력하고자 하는 경우 세번째 파라미터에 -1을 넣으면 됩니다.

string = "ABC"

print(string[2:0:-1]) # "CB" 2부터 1까지 1씩 감소

print(string[0:3][::-1]) # "CBA" 0부터 2까지를 역순으로

주의할 점은 역순으로 슬라이싱을 할 때,

start부터 end + 1까지를 자르므로 마지막으로 출력되는 문자는 string[1] 이라는 것입니다.

string[2:0:-1] 이라고 하면 문자열 전체를 뒤집은 "CBA"가 나올 것 같지만 실제로는 "CB"가 반환됩니다.

string[0:3][::-1]는 전체 문자열 "ABC"를 다시 역순으로 슬라이싱하여 원하던 "CBA" 라는 결과를 얻을 수 있습니다.

 

 

반응형