인덱싱(indexing)이란 무언가를 가리킨다는 뜻으로 연속적인 객체(리스트, 튜플, 문자열)에 부여된 번호를 의미합니다. 쉽게 말해서 원하는 값을 가리킬 때 indexing을 사용합니다.
슬라이싱(slicing)이란 무언가를 잘란 낸다는 뜻으로 연속적인 객체(리스트, 튜플, 문자열)에 부여된 번호를 이용해 연속된 객체에 일부를 추출하는 작업입니다.
문자열을 사용해서 indexing 해보자!
예시)
city = 'seoul'
print(city[0]) # 결과 값: s
print(city[1]) # 결과 값: e
print(city[2]) # 결과 값: o
print(city[3]) # 결과 값: u
print(city[4]) # 결과 값: l
print(len(city)) # 결과 값: 5
len() 함수를 이용해서 city 문자열에 길이를 보면 5를 출력되는 걸 알 수 있습니다.
하지만 city 문자열을 인덱싱(indexing)하면 첫 번째 문자열 위치는 0이라는 것 을 볼 수 있습니다.
s | e | o | u | l |
---|---|---|---|---|
0 | 1 | 2 | 3 | 4 |
그림에서 보면 첫 번째 문자열에 인덱스(index)는 0부터 시작입니다. 즉 city 문자열에 마지막 인덱스는 (len)5 - 1 = 4가 됩니다.
문자열을 마지막에서부터 시작하는 예시)
city = 'seoul'
print(city[-1]) # 결과 값: l
print(city[-2]) # 결과 값: u
print(city[-3]) # 결과 값: o
print(city[-4]) # 결과 값: e
print(city[-5]) # 결과 값: s
city 문자열을 뒤에서부터 인덱싱(indexing)을 사용하고 싶다면 -1부터 시작하면 됩니다. 즉 시작 index는 -1, 마지막 index는 -5가 됩니다.
위에서 언급했듯이 슬라이싱(slicing)은 무엇을 잘라낸다는 뜻으로 연속적인 객체에서 일부를 잘라내 추출하는 방식입니다.
슬라이싱(slicing)도 인덱싱(indexing)과 마찬가지로 시작 인덱스(index) 값은
0부터 시작합니다. 그리고 뒤에서부터 시작하고 싶으면-1부터 시작하면 됩니다.
문자열을 slicing 해보자!
예제 1)
s = 'silcing'
# 객체 = [start:end:]
print(s[0:3:]) # 0 ~ 2까지 문자열 출력, 출력값: sil
# 객체 = [start::]
print(s[0::]) # 0 ~ s의 마지막 문자열까지 출력, 출력값: silcing
# 객체 = [:end:]
print(s[:4:]) # s 문자열 길이 3까지 출력, 출력값: silc