아이와 함께 배우는 세상 사는 법

[파이썬 강좌] 인덱싱(Indexing)과 슬라이싱(Slicing)의 개념과 사용법 본문

파이썬(python)/문법(syntax)

[파이썬 강좌] 인덱싱(Indexing)과 슬라이싱(Slicing)의 개념과 사용법

CosmoEduVenture 2024. 2. 16. 22:28
반응형

반응형

  안녕하세요. 코스모에듀밴쳐(CosmoEduVenture) 파파입니다.

  파이썬 프로그래밍 언어 학습에 있어서 인덱싱(indexing)과 슬라이싱(slicing)시퀀스(순서를 가진) 자료형의 데이터에 접근하고 조작하는 데 있어서 아주 중요한 역할을 합니다. 즉, 데이터를 효율적으로 조작하고 처리하는 데 있어서 인덱싱과 슬라이싱의 개념을 잘 이해하고 활용하는 것이 중요합니다.  

시퀀스 객체(Sequence Object) : 문자열(str), 리스트(list), 튜플(tuple)

인덱싱(Indexing)

  시퀀스 자료형 데이터는 나열된 순서에 따라 구분이 가능한 번호를 가지게 되며, 이를 인덱스(index)라고 합니다. 그리고 특정 위치에 있는 값을 선택하는 것을 인덱싱(indexing) 이라고 합니다.

인덱싱 및 슬라이싱은 다음과 같이 대괄호([ ])를 사용합니다.
객체명[index]

  텍스트 기반의 프로그래밍 언어에서 인덱스(index)의 시작 값은 항상 '0'으로 시작하며, 파이썬의 경우 음수를 사용하여 역 방향으로 인덱스(index) 값을 부여할 수 있습니다. 역 방향의 경우 시작값은 '-1'입니다.

  그리고 문자열의 경우 공백 또한 문자로 문자열에 포함되니 참고하시기 바랍니다.

문자열(str) 자료형의 인덱스(index) 예시

  • 시퀀스 자료형의 인덱싱 예제
# 문자열 자료형 인덱싱 예제

data = "hello world"
print(data[0])		# 문자열 0번 인덱스인 'h'출력
print(data[-1])		# 문자열 마지막 인덱스인 'd'출력

# 선택된 문자을 추출하여 결합
print(data[0]+data[4]+data[-1])	# 결과 : 'hod' 

# 데이터의 길이 값을 반환하는 함수 : len()
print(len(data)		# data 객체의 문자열 길이 반환 : 11

# 인덱싱 오류 예
print(data[11])

예제의 마지막 출과 같이 data 문자열의 11번째 인덱스(index)로 접근하면 범위를 벗어나 오류가 발생합니다.

data는 공백을 포함해 문자의 갯수가 11개이지만 접근 가능한 인덱스(index) 번호는 0~10까지입니다.

슬라이싱(Slicing)

  시퀀스 자료형에서 일정한 규칙을 가지고 특정 범위의 값을 추출하는 것을 슬라이싱(Slicing)이라고 합니다. 

예를 들어 "hello world" 문자열에서 "hello"만 잘라내고 싶다면 data[0:5]를 사용하여 문자열 추출할 수 있습니다.

슬라이싱 규칙:

  • 객체명[시작 : 끝 : 간격]        <=  인덱스는 콜론(:)을 사용하여 구분합니다.
시작 : 슬라이싱 할 문자열의 시작 인덱스
   끝 : 슬라이싱 할 문자열의 끝 인덱스로 해당 인덱스를 포함하지 않는다.
          즉, (시작 ≦ data ≺ 끝) 관계식과 같다.
간격 : 시작을 기준으로 간격만큼 건너뛰어 슬라이싱 한다.
          기본값은 1로 설정되어 있으며, 필요에 따라 설정하여 사용한다.
# 슬라이싱 예제

data = ‘hello world’
print(data[0:7])	# 0번 인덱스에서 6번 인덱스까지의 공백을 포함한 문자를 추출.
print(data[:7]) 	# 첫번째 자리를 비워두면 처음부터를 의미함.
print(data[6:])		# 두번째 자리를 비워두면 마지막까지를 의미함. 

nums = [1,2,3,4,5,6,7,8,9,10]

# 첫번째와 두번째 위치의 인덱스가 없음으로 처음부터 끝까지를 의미.
print(nums[::2])	# 그리고 세번째 위치의 값이 '2'이므로 1을 시작으로 홀수 값을 추출.

#결과 [1,3,5,7,9]

슬라이싱을 할 때 인덱스에 음수를 사용하여 데이터를 거꾸로 추출할 수 있습니다.

위 내용을 활용하여 리스트 nums를 거꾸로 슬라이싱하여 출력해 보시기 바랍니다.

 

 

 

 

 

반응형