반짝이는 오렌지

[Python] 기초 문법 : 인덱싱과 슬라이싱 본문

Python/Python 기초

[Python] 기초 문법 : 인덱싱과 슬라이싱

twinkle orange 2022. 3. 18. 15:35
728x90
반응형

'Failure is but a stepping stone to success' 이라는 문장에서 Failure 라는 단어만 출력하고 싶다면 어떻게 해야할까?

python 에서 모든 데이터에는 인덱스 번호가 부여되어 있다. 따라서 특정 인덱스 번호로 단어를 추출하면 된다.

 

이 때, 인덱싱과 슬라이싱이 있다. 인덱싱은 하나의 데이터를 선택하는 것을 말하고, 슬라이싱은 인덱스번호의 범위로 데이터를 추출하는 것을 말한다.

 

  • 인덱스

a라는 변수에 'Failure is but a stepping stone to success' 문자열을 할당한다.

a = 'Failure is but a stepping stone to success'
a
# 'Failure is but a stepping stone to success'

여기에서 세번째에 있는 알파벳 'i'를 출력하려면 변수 a에서 조건[ ] 에 인덱스번호를 입력하면 된다.

하지만 3이 아니라 2라는 숫자를 입력해야 한다.

a[3]
#'l'
a[2]
#'i'

왜냐하면 인덱스 번호는 0부터 시작하기 때문이다.

a[0]을 입력하여 실행 해보면 첫번재 알파벳 'F'가 출력되는 것을 확인할 수 있다.

a[0]
#'F'

반대로 a 변수의 마지막 알파벳을 출력하려면 -1 로 입력하면 된다.

-0 = 0 이므로 -0을 입력하면 첫번째 알파벳이 반환된다.

a[-1]
#'s'
a[-0]
#'F'

 

  • 슬라이싱

문자 하나가 아니라 'Failure'라는 단어를 선택하고 싶다면 어떻게 해야할까?

이 때는 인덱스의 범위로 조건을 입력하면 된다.

변수[시작번호:끝번호:간격] 의 형태로 입력하면된다.

'Failure'의 경우 F의 인덱스번호는 0이고, 'e'의 경우 6이다.

하지만 0에사 6으로 입력하면 e는 출력되지 않는다.

a[0:6]
#'Failur'

Python의 인덱싱번호의 범위에서 끝번호는 포함하지 않기 때문에 +1을 한 7을 입력해야 한다. 

a[0:7]
#'Faliure'

간격을 추가 하고 싶다면 변수[시작:끝:간격] 과 같이 마지막에 숫자 정보를 추가하면 된다.

a[2:6:2] # a[시작:끝:간격]
#'iu'

인덱스의 뒷번호 생략시 시작번호부터 끝까지 선택

a[26:] 
#'stone to success'

앞번호 생략시 맨 앞번호부터 뒷번호까지 선택

a[:25] 
#'Failure is but a stepping'

시작과 끝 번호 생략시 전체 선택

a[:] 
#'Failure is but a stepping stone to success'

이렇게 데이터에 부여된 인덱스 번호로 특정 데이터만 선택하여 반환할 수 있다.

반응형