방문해 주셔서 감사합니다.
이번엔 문자열을 자르는 방법에 대해 알아보겠습니다.
이것을 시퀀스 슬라이싱(sequence slicing)이라고 부릅니다.
예를 들어서 everdevel에서 ever만 자른다던지 rdev 만 자른다던지 원하는 글자를 추출할 수 있습니다.
앞에서 문자열도 인덱스가 있다고했죠.
이 인덱스로 시작할 인덱스와 끝나는 인덱스를 조정할 수 있습니다.
myWord = "everdevel"; myWord[시작할 인덱스 이상 :끝날 인덱스 미만]
예를 들어
문자 | e | v | e | r | d | e | v | e | l |
인덱스 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 9 |
ever만 자른다면 첫번째 ever의 첫번째 e는 0, r은 3입니다. 하지만 끝나는 인덱스는 미만이므로 3의 미만인 2까지 표시를 합니다. 그러므로 4를 넣어줍니다.
그렇다면 이렇게 하겠죠? [0:4]
즉 [0:3]이면 eve까지 나오며 [0:4]는 ever까지 나옵니다.
myWord = "everdevel" print(myWord[0:4])
결과는 바로 아래에서 확인하겠습니다.
의도대로 ever이 나옵니다. 다시한번 시작은 이상, 끝은 미만 기억하세요.
이 시퀀스 슬라이싱은 여러가지 규칙이 있습니다.
시퀀스 슬라이싱에서 숫자를 입력하지 않으면 기본값이 적용됩니다.
:의 앞을 안적으면 문자열의 처음, :의 뒤를 안적으면 문자열의 끝이 기본값이 됩니다.
그럼 해볼까요?
myWord = "everdevel" print(myWord[:4]) print(myWord[4:])
결과는 바로 아래에서 확인하겠습니다.
그럼 위의 결과를 보면 앞과 뒤 둘다 입력을 안하면 즉 [:]을 하면 처음과 끝이 기본값으로 되어 모두다 출력됩니다.
myWord = "everdevel" print(myWord[:])
결과는 바로 아래에서 확인하겠습니다.
그리고 자를 때 간격도 조정할 수 있습니다.
세번째 값에 넣어줍니다.
myWord = "everdevel"; myWord[시작할 인덱스 이상 :끝날 인덱스 미만:간격]
간격을 2로 해봅시다.
myWord = "everdevel" print(myWord[2::2])
결과는 바로 아래에서 확인하겠습니다.
문자 | e | v | e | r | d | e | v | e | l |
인덱스 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 9 |
표시 | O | O | O | O |
결과가 edvl이 나왔어요. e다음에 2개 띄어서 e가 나오는거 아니냐 생각하실 수 있는데 2를 더한 값으로 하셔야합니다.
그러니 실제 간격이 1이 됩니다.
이번엔 처음부터 끝까지 간격 3으로 해봅시다.
그럼 0 + 3 + 3 + 3 즉,
문자 | e | v | e | r | d | e | v | e | l |
인덱스 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 9 |
표시 | O | O | O |
위의 표를 보니 erv가 나오면 정상이네요.
myWord = "everdevel" print(myWord[::3])
결과는 바로 아래에서 확인하겠습니다.
Good!! erv가 나옵니다. 너무 피곤하네요. 전 자야겠습니다. ㅜㅜ
봐주셔서 감사합니다. 문의 또는 잘못된 설명은 아래의 댓글에 부탁드립니다.
당신의 작은 누름이 저에게는 큰 희망이 됩니다.
컨텐츠의 내용을 더 보려면 바로 아래에서 확인할 수 있습니다.
컨텐츠
더보기
댓글 0개
정렬기준