Updated:

파이썬의 문자열 데이터 타입을 정리한 두 번째 글입니다.

1. 문자열 데이터 인덱싱Permalink

인덱싱(Indexing)은 무엇인가를 “가리킨다”는 의미로, 인덱싱을 통해 문자열 중 특정 문자를 선택할 수 있습니다. 이때, data[x]의 방법으로 번호를 매겨 x번째 문자를 선택할 수 있습니다.

>>> a = "Hello Python"
>>> a[0]
'H'
>>> a[11]
'n'
>>> a[-1]
'n'
>>> a[-0]
'H'

이때, a[11]과 a[-1]은 똑같이 맨 마지막 문자를 선택합니다. 다만, -문자를 사용하여 뒤에서부터 읽을 때에는 1부터 시작하는데, 0과 -0은 똑같기 때문에 a[0]과 a[-0]은 같은 위치를 나타내기 때문입니다.


2. 문자열 데이터 슬라이싱Permalink

인덱싱은 한 단어를 선택한다면, 슬라이싱(Slicing)은 구간을 선택할 수 있습니다. 슬라이싱은 data[시작번호:끝번호]의 형태로 할 수 있습니다.

>>> a = "Hello Python"
>>> a[0:5]
'Hello'

이때, ‘o’는 a[4]이지만, 슬라이싱을 할 때에는 a[0:5]처럼 마지막 번호를 쓰지 않습니다. 슬라이싱은 끝번호에 해당하는 문자는 포함하지 않기 때문입니다. a[0:5]를 수식으로 써보자면 다음과 같습니다.

0 <= a < 5

이 수식을 만족하는 것은 a[0], a[1], a[2], a[3], a[4]가 해당되고, 따라서 a[0:5] 는 ‘Hello’에 해당됩니다.

슬라이싱에서 끝번호를 생략하고 data[시작번호:]의 형태로 사용하게 되면, 시작번호부터 문자열의 맨 마지막까지 선택합니다.

>>> a = "Hello Python"
>>> a[6:]
'Python'

또한, data[:끝번호]의 형태로 사용하게 되면, 문자열의 첫번째 문자부터 끝번호까지 선택합니다.

>>> a[:5]
'Hello'

data[시작 번호:끝 번호]에서 시작 번호와 끝 번호를 생략하면 문자열의 처음부터 끝까지를 뽑아냅니다.

>>> a[:]
'Hello Python'

슬라이싱에서도 인덱싱과 마찬가지로 - 기호를 사용할 수 있습니다.

>>> a[0:-7]
Hello

여기서 a[0:-7]는 a[0]에서부터 a[-8]까지를 뜻하며, a[-7]은 포함하지 않습니다.

슬라이싱은 데이터를 다룰 때 자주 사용하는 기법입니다.

>>> a = "20010331Rainy"
>>> year = a[:4]
>>> day = a[4:8]
>>> weather = a[8:]
>>> year
'2001'
>>> day
'0331'
>>> weather
'Rainy'

문자열 “20010331Rainy”를 연도(2001), 날짜(0331), 날씨(Rainy) 등 세 부분으로 나누려면 위와 같이 할 수 있습니다.


Reference


https://wikidocs.net/13#_10

Tags:

Categories:

Updated:

Leave a comment