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" 라는 결과를 얻을 수 있습니다.
반응형