문자열 word = "abc"라고 가정하고 1234번째 인덱스에 접근해보자

word = "abc"
print(word[1234123]) #"IndexError: string index out of range"

 

주어진 문자열의 인덱스 범위를 초과하는 인덱스를 사용하면 "IndexError: string index out of range" 오류가 발생한다.
하지만 new_word = word[:i] + word[i+1:]와 같이 범위를 초과하는 인덱스를 사용하는 경우에는 인덱스 오류가 발생하지 않는다. 파이썬 문자열 슬라이싱은 범위를 초과하더라도 오류를 발생시키지 않고 가능한 범위까지 슬라이싱하기 때문이다.

 

즉, word[:i]는 word의 첫 번째 문자부터 i-1번째 문자까지 슬라이싱된다.

word[i+1:]은 i+1번째 문자부터 마지막 문자까지 슬라이싱된다.

범위를 초과하는 경우에는 가능한 범위까지만 슬라이싱되고 나머지는 빈 문자열로 처리된다고 한다.

word[:5]와 word[5:]는 다음과 같이 동작한다.

print(word[:5])  # 출력: "abc" (범위 초과하지 않음)
print(word[5:])  # 출력: "" (빈 문자열, 범위 초과)

 

어떤상황에 활용할 수 있을까?

문자열 word에서 한 문자를 빼고 만들 수 있는 경우를 구할 때 쓸 수 있다! 

    #단어에서 i번째 문자 하나씩 없애서 선행자 전부 찾기 
		predecessor=[]
        word="abc"    
        for i in range(len(word)):
            #슬라이싱은 표현 가능한 범위 까지만 리턴한다
            left=word[:i]
            right=word[i+1:]
            predecessor.append(left+right)
            
            
     print(predecessor) #['bc','ac','ab']

'코딩테스트 > python' 카테고리의 다른 글

파이썬 알파벳 리스트 만들기  (0) 2022.03.23
from string import ascii_lowercase

n,r =map(int, input().split(' '))

test=list(ascii_lowercase)[:n]

간-단

'코딩테스트 > python' 카테고리의 다른 글

python 문자열 슬라이싱 범위  (0) 2023.06.14

+ Recent posts