기록하는 중/파이썬

[Python] 문자열 인덱싱

성장하는 요롱이 2024. 4. 3. 12:52
인덱스
  • 수열 같은 것에서 특정한 위치를 지정하는 것
  • 0번 부터 시작 
  • 공백도 포함
  • 음수도 가능, 제일 뒤가 -1,  제일 뒤부터 추출

 

  문자열 인덱스
  • 문자열의 지정 인덱스에서 문자를 뽑아내는 방법
  • 인덱스를 초과하면 IndexError:string index out of range 에러가 뜸
print("index"[0]) # i
print("index"[1]) # n
print("index"[2]) # d
print("index"[3]) # e
print("index"[4]) # x

print("index"[-1]) # x
print("index"[-2]) # e
print("index"[-3]) # d
print("index"[-4]) # n
print("index"[-5]) # i

 

문자열 슬라이싱
  • 형식  ex) 문자열[n:m]  
  • n번 부터 m-1번까지 출력, 마지막 m위치의 요소는 포함하지 않음
  • 모든 문자열을 출력하려면 m+1로 지정해야 모두 출력
  • 마지막 인덱스를 넣지 않으면 제일 마지막 인덱스 까지 출력 [n:]
  • 맨처음 인덱스를 지정하지 않으면 인덱스 0번 부터 출력 [:10] 
  • 둘다 적지 않으면 모두 출력 [:]
  • 음수도 가능, 문자열[-m:-n], n위치의 요소는 포함하지 않음
  • 음수는 인덱스를 잘못 지정해 주면 아무것도 출력되지 않음 ex)잘못지정 예 [-1:-10]
  • 슬라이싱은 문자열 범위를 넘어도 정상 출력됨
  • step 사용 : 몇개씩 끊어서 가져 올건지 알려주는 것 ex) 문자열[n:m:step]
  • step도 음수 가능, 제일 뒤에서 부터 끊어서 가지고 옴
str_slice = "0123456789"

print(str_slice[0:7])  #0123456
print(str_slice[0:]) #0123456789
print(str_slice[:10]) #0123456789

print(str_slice[-8:-1] #2345678
print(str_slice[-1:-8] # 아무것도 출력 안됨

#step사용
print(str_slice[::2] #02468
print(str_slice[::-3] #9630
print(str_slice[9::-3] #9630
print(str_slice[-1::-3] #9630