Python
문자열 자르기 (시퀀스 슬라이싱 sequence slicing)
문자열 자르기 (시퀀스 슬라이싱 sequence slicing)
이번엔 문자열을 자르는 방법에 대해 알아보겠습니다.
이것을 시퀀스 슬라이싱(sequence slicing)이라고 부릅니다.
예를 들어서 pinkcoding에서 ever만 자른다던지 rdev 만 자른다던지 원하는 글자를 추출할 수 있습니다.
앞에서 문자열도 인덱스가 있다고했죠.
이 인덱스로 시작할 인덱스와 끝나는 인덱스를 조정할 수 있습니다.
시퀀스 슬라이싱 적용하기
myWord = "pinkcoding"; myWord[시작할 인덱스 이상 :끝날 인덱스 미만]
예를 들어
문자 | p | i | n | k | c | o | d | i | n | g |
인덱스 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 9 | 10 |
pink만 자른다면 첫번째 pink의 첫번째 p는 0, k은 3입니다. 하지만 끝나는 인덱스는 미만이므로 3의 미만인 2까지 표시를 합니다. 그러므로 4를 넣어줍니다.
그렇다면 이렇게 하겠죠? [0:4]
즉 [0:3]이면 pin까지 나오며 [0:4]는 pink까지 나옵니다.
myWord = "pinkcoding" print(myWord[0:4])
결과는 바로 아래에서 확인할 수 있습니다.
의도대로 pink이 나옵니다. 다시한번 시작은 이상, 끝은 미만 기억하세요.
이 시퀀스 슬라이싱은 여러가지 규칙이 있습니다.
시퀀스 슬라이싱에서 숫자를 입력하지 않으면 기본값이 적용됩니다.
:의 앞을 안적으면 문자열의 처음, :의 뒤를 안적으면 문자열의 끝이 기본값이 됩니다.
그럼 해볼까요?
myWord = "pinkcoding" print(myWord[:4]) print(myWord[4:])
결과는 바로 아래에서 확인할 수 있습니다.
그럼 위의 결과를 보면 앞과 뒤 둘다 입력을 안하면 즉 [:]을 하면 처음과 끝이 기본값으로 되어 모두다 출력됩니다.
myWord = "pinkcoding" print(myWord[:])
결과는 바로 아래에서 확인할 수 있습니다.
그리고 자를 때 간격도 조정할 수 있습니다.
시퀀스 슬라이싱 간격 적용하기
세번째 값에 넣어줍니다.
myWord = "pinkcoding"; myWord[시작할 인덱스 이상 :끝날 인덱스 미만:간격]
간격을 2로 해봅시다.
myWord = "pinkcoding" print(myWord[2::2])
결과는 바로 아래에서 확인할 수 있습니다.
문자 | p | i | n | k | c | o | d | i | n | g |
인덱스 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 9 | 10 |
표시 | O | O | O | O |
결과가 ncdn이 나왔어요. p다음에 2개 띄어서 k가 나오는거 아니냐 생각하실 수 있는데 2를 더한 값으로 하셔야합니다.
그러니 실제 간격이 1이 됩니다.
이번엔 처음부터 끝까지 간격 3으로 해봅시다.
그럼 0 + 3 + 3 + 3 즉,
문자 | p | i | n | k | c | o | d | i | n | g |
인덱스 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 9 | 10 |
표시 | O | O | O | 0 |
위의 표를 보니 pkdg가 나오면 정상이네요.
myWord = "pinkcoding" print(myWord[::3])
결과는 바로 아래에서 확인할 수 있습니다.
Good!! erv가 나옵니다. 너무 피곤하네요. 전 자야겠습니다. ㅜㅜ
//=$langList['bottomThankyou'][$langMode]?>