본문 바로가기

언어/Python

[ 파이썬 / Python ] 문자열 일부 변경하기

반응형

1. 문자열 기본 사용

파이썬에서 문자열은 불변(immutable) 타입이기 때문에 특정 인덱스의 문자를 직접 변경할 수 없습니다. 파이썬 문자열의 불변성은 한 번 문자열 객체가 생성되면 그 내용을 변경할 수 없음을 의미합니다.

만약 문자열의 특정 인덱스 문자를 변경하려고 하면, TypeError가 발생합니다. 예를 들어:

s = "hello"
s[0] = "H"  # TypeError: 'str' object does not support item assignment

하지만, 새로운 문자열을 생성하여 원래 문자열의 특정 문자를 변경하는 것과 같은 효과를 낼 수 있습니다. 이를 위해 문자열 슬라이싱 및 연결을 사용할 수 있습니다.

2. 문자열의 특정 인덱스 문자를 변경하는 방법

방법 1: 슬라이싱 및 문자열 연결

s = "hello"
s = s[:0] + "H" + s[1:]
print(s)  # 출력: Hello

위 예제에서:

  • s[:0]는 문자열의 처음부터 인덱스 0 이전까지의 부분 문자열입니다. (빈 문자열)
  • "H"는 새로운 문자입니다.
  • s[1:]는 인덱스 1부터 문자열의 끝까지의 부분 문자열입니다.

이들을 연결하여 새로운 문자열을 생성합니다.

방법 2: 리스트로 변환하여 변경 후 다시 문자열로 변환

문자열을 리스트로 변환한 다음, 리스트의 요소를 변경하고, 다시 문자열로 변환할 수 있습니다.

s = "hello"
s_list = list(s)
s_list[0] = "H"
s = "".join(s_list)
print(s)  # 출력: Hello

위 예제에서:

  • list(s)는 문자열을 문자 리스트로 변환합니다.
  • s_list[0] = "H"는 리스트의 첫 번째 요소를 변경합니다.
  • "".join(s_list)는 리스트를 다시 문자열로 결합합니다.

이와 같은 방법들을 사용하면 파이썬의 문자열 불변성을 위반하지 않고 문자열의 특정 인덱스 문자를 변경할 수 있습니다.

반응형