-
왜 Python에서 `str`타입이 append 메소드를 지원하지 않을까?언어/Python 2024. 5. 28. 09:35
[결론]
Python에서 str 타입이 append 메소드를 지원하지 않는 이유는 문자열이 불변 객체 (immutable object) 이기 때문입니다. 불변 객체란 한 번 생성되면 그 값을 변경할 수 없는 객체를 의미합니다. 문자열은 생성된 후 그 내부의 문자들을 직접 수정할 수 없으며, 새로운 문자열을 만들어 반환하는 방식으로만 변경할 수 있습니다.
[예시: 불변 객체로서의 문자열]
s = "hello" s.append(" world") # AttributeError: 'str' object has no attribute 'append'
위 예제에서 s는 문자열 객체입니다. 하지만 str 객체에는 append 메소드가 없기 때문에 AttributeError가 발생합니다.
[그럼 문자열을 수정하려면 어떻게 해야 될까?]
문자열을 수정하려면 문자열을 조작하여 새로운 문자열을 생성해야 합니다
예시 1: 덧셈 연산자를 사용하여 문자열 이어붙이기
s = "hello" s = s + " world" print(s) # 출력: hello world
위 예제에서는 s + " world"가 새로운 문자열을 생성하고, 그 결과를 다시 s에 할당합니다.
예시 2: join 메소드를 사용하여 문자열 이어붙이기
s = "hello" s = "".join([s, " world"]) print(s) # 출력: hello world
join 메소드는 리스트에 있는 문자열들을 하나로 합쳐 새로운 문자열을 만듭니다.
예시 3: format 메소드 또는 f-string을 사용하여 문자열 포맷팅
s = "hello" s = "{} world".format(s) print(s) # 출력: hello world s = "hello" s = f"{s} world" print(s) # 출력: hello world
'언어 > Python' 카테고리의 다른 글
[Python] BOJ 7576: 토마토(feat. 3일 걸렸다.) (5) 2024.11.07 왜 Python 에서 `list`타입이 `replace` 메소드를 지원하지 않을까? (0) 2024.05.28 [Python] 당신의 for문에서 map()이 안되는 이유 (0) 2024.04.22 [Python] List Comprehensions이란? (0) 2024.04.22 [Python] 유니코드란? & 활용한 문제 예시(feat.CodeUp : 6,069 평가 입력 받아 다르게 출력하기(py)) (0) 2024.04.17