파이썬에서 문자열 인덱싱 2.
파이썬에서 문자열은 문자(character)들의 순서가 있는 시퀀스(Sequence)로, 각 문자에는 0부터 시작하는 고유한 인덱스가 할당됩니다. 이를 통해 문자열의 특정 위치에 있는 문자에 접근할 수 있습니다.
1. 기본 인덱싱 (Positive Indexing)
문자열에서 인덱스는 0부터 시작합니다. 예를 들어, 문자열 `"Python"`에서 각 문자의 인덱스는 다음과 같습니다:
- `s = "Python"`
- `s[0]`은 `"P"`를 반환합니다.
- `s[1]`은 `"y"`를 반환합니다.
- `s[5]`은 `"n"`을 반환합니다.
s = "Python" print(s[0]) # Output: P print(s[1]) # Output: y print(s[5]) # Output: n |
2. 역방향 인덱싱 (Negative Indexing)
파이썬에서는 문자열의 뒤에서부터 접근하기 위해 음수 인덱스를 사용할 수 있습니다. 인덱스 `-1`은 마지막 문자, `-2`는 뒤에서 두 번째 문자, 이런 식으로 접근할 수 있습니다.
- `s[-1]`은 `"n"`을 반환합니다.
- `s[-2]`은 `"o"`를 반환합니다.
- `s[-6]`은 `"P"`를 반환합니다.
s = "Python" print(s[-1]) # Output: n print(s[-2]) # Output: o print(s[-6]) # Output: P |
3. 문자열 슬라이싱 (String Slicing
인덱스를 사용하여 문자열의 일부를 추출할 수 있습니다. 슬라이싱의 기본 문법은 `[start:end]`이며, `start` 인덱스부터 `end` 인덱스 바로 앞까지의 문자를 반환합니다. 예를 들어, `"Python"`에서 `"Pyt"` 부분을 추출하려면:
s = "Python" print(s[0:3]) # Output: Pyt |
- `s[0:3]`은 `"Pyt"`을 반환합니다.
- `s[2:5]`은 `"tho"`을 반환합니다.
- `s[:4]`은 `"Pyth"`을 반환합니다.
- `s[2:]`은 `"thon"`을 반환합니다.
슬라이싱에서 `start`나 `end`를 생략하면, 문자열의 처음이나 끝까지를 의미합니다.
4. 스텝 (Step) 사용하기
슬라이싱 문법 `[start:end:step]`에서 `step`을 추가로 지정할 수 있습니다. `step`은 문자를 몇 칸씩 건너뛰며 가져올지를 결정합니다.
s = "Python" print(s[0:6:2]) # Output: Pto |
- `s[::2]`는 `"Pto"`을 반환합니다. (2칸씩 건너뛰며 추출)
- `s[::-1]`는 `"nohtyP"`을 반환합니다. (역순으로 문자열을 반환)
5. 문자열은 불변 (Immutable)
파이썬에서 문자열은 불변(Immutable)입니다. 이는 한 번 생성된 문자열은 수정할 수 없음을 의미합니다. 예를 들어, 인덱싱을 통해 개별 문자를 변경하려고 하면 오류가 발생합니다.
s = "Python" # s[0] = "J" # 오류 발생: 문자열은 불변이므로 수정할 수 없음 |
# 대신, 새로운 문자열을 생성해야 합니다.
s = "J" + s[1:]
print(s) # Output: Jython
6. 인덱스 범위 벗어남 (IndexError)
만약 문자열의 길이를 초과하는 인덱스로 접근하려고 하면 `IndexError`가 발생합니다.
s = "Python" # print(s[10]) # IndexError: 문자열 범위를 벗어남 |
요약
- 양수 인덱스**로는 문자열의 앞쪽에서부터 접근.
- 음수 인덱스**로는 문자열의 뒤쪽에서부터 접근.
- 슬라이싱**으로 문자열의 일부를 추출.
- 문자열은 **불변**이라 수정할 수 없으며, 새로운 문자열을 만들어야 함.
이러한 인덱싱 및 슬라이싱 기능을 통해 문자열 내에서 필요한 부분에 쉽게 접근하고 조작할 수 있습니다.