기록하는 중/파이썬
[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