본문 바로가기
초보 코딩 배우기

파이썬 인덱싱과 슬라이싱

by into 2021. 4. 26.
반응형

파이썬 순서가 있는 데이터 종류 (list, tuples, string)에 인덱싱과 슬라이싱을 사용할 수 있습니다.

 

인덱싱 (indexing)

파이썬의 순서가 있는 데이터의 인덱스는 0부터 시작합니다. 네거티브 인덱스를 사용할 때는 데이터의 오른쪽부터 -1에서 시장하여 -1씩 줄어듭니다.

아래의 그림에서  data.csv의 첫 번째 인덱스는 d, 6번째 인덱스 ( 네거티브 3번째 인덱스)는  c입니다.

 

my_pets = ["dog", "cat", "bird"]

my_pets[0]

인덱스 0은 데이터 첫 번째 아이템을 의미합니다.

 

네거티브 인덱스

-1 마지막 인덱스, -2는 마지막에서 두 번째 인덱스입니다.

my_pets[-1]

네거티브 인덱스는 데이터 오른쪽부터 -1에서 시작합니다.

 

tuple에서 인덱싱

a=('Fred', 23, 'Senior')

a[1]

위의 tuple의 인덱스 0은 'Fred', 인덱스 1은 23, 인덱스 2는 'Senior'

 

string에서 인덱싱

‘Fred’[0]

 'Fred' string의 첫 번째 인덱스는 'F'입니다.

 

슬라이싱 (slicing)

슬라이스는 콜론 (:)을 사용하여 첫 번째 인덱스, 마지막 인덱스, 인덱스 폭을 지정할 수 있습니다.

my_pets = ["dog", "cat", "bird"]

print(my_pets[0:2])

my_pets 리스트에서 0:2 사용하여 처음 2개의 아이템을 출력합니다.

슬라이싱에서 첫 번째 인덱스를 지정하지 않으면 기본값인 0부터 시작합니다.

print(my_pets[:2])

따라서 위 예제에서 [0:2]와 [:2]는 동일한 결과를 보여줍니다.

 

네거티브 슬라이스도 동일하게 첫 번째 인덱스가 생략되면 0부터 시작하는 것을 의미합니다.

my_pets[0:-1]

my_pets[:-1]

my_pets[0:-2]

 

마지막 인덱스를 생략한 경우 기본값은 리스트의 마지막 아이템을 의미합니다.

my_pets[1:]

my_pets[-2:]

 

첫 번째와 마지막 인덱스 모두 생략된 경우 기본값은 처음부터 마지막까지를 의미합니다.

my_pets[:]

 

인덱스 증가

인덱스 증가폭의 기본값은 1입니다.

 

[인덱스 시작: 인덱스 끝: 인덱스 증가 폭]의 형식

data.csv[;4]는 0부터 3까지 1씩 증가하므로 결과는 data입니다.

data.csv[-3:]는 네거티브 인덱스 -3부터 마지막 인덱스까지 1씩 증가하므로 결과는 csv입니다.

[start: end: 1]은 지정된 첫 번째, 마지막 인덱스에서 1 증가하면서 아이템을 가지고 오는 것입니다.

 

zero_six = [0, 1, 2, 3, 4, 5, 6]

zero_six[0:7]

zero_six[0:7:1]

[0:7]과 [0:7:1]은 인덱스 0부터 6까지 1씩 증가

 

zero_six[0:7:3]

zero_six[::3]

[0:7:3]과 [::3]은 0-부터 6까지 3씩 증가

 

인덱스 대신에 range 함수를 사용할 수 있습니다.

list(range(0, 7, 3))

 

네거티브 인덱스 증가

인덱스 증가폭이 네거티브이면 오른쪽에서 왼쪽으로 움직이게 됩니다.

 

인덱스 폭이 -1 경우

zero_six[::-1]

[::-1]은 마지막 인덱스부터 첫 번째 인덱스까지 -1씩 증가합니다.

 

zero_six[2:0:-1]

[2:0:-1]은 세 번째 인덱스부터 두 번째 인덱스까지 -1씩 감소합니다.

 

zero_six[::-2]

[::-2]는 마지막 인덱스부터 첫 번째 인덱스까지 -2씩 증가합니다.

 

네거티브 인덱스 폭을 사용하려면 첫 번째 인덱스가 마지막 인덱스보다 항상 커야 합니다.

 

 

오늘은 파이썬에서 사용되는 인덱싱과 슬라이싱에 대해서 알아봤습니다.

 

 

반응형

'초보 코딩 배우기' 카테고리의 다른 글

파이썬 string 포멧 출력하기  (12) 2021.05.24
파이썬 모듈  (4) 2021.05.18
파이썬 while loop  (6) 2021.05.10
파이썬 파일 입출력  (10) 2021.05.03
파이썬 함수  (19) 2021.04.19
파이썬 dictionary  (14) 2021.04.11
파이썬 for loop  (6) 2021.04.04
파이썬 set  (8) 2021.03.28

댓글