본문 바로가기
Python & Django

Python 문자열 슬라이싱 slicing

by softserve 2023. 6. 8.
반응형

문자열을 조작하는 기본적인 방법은 반복문을 돌리면서 문자열을 이루는 문자 하나 하나에 대해 처리를 하는 것입니다. 자주 사용되는 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" 라는 결과를 얻을 수 있습니다.

 

 

반응형

댓글