여러분이 사용하고 계신 브라우저는 HTML5를 지원하지 않기 때문에 몇몇 요소가 제대로 보이도록 JScript를 사용하고 있습니다. 하지만 여러분의 브라우저 설정에서 스크립트 기능이 꺼져있으므로, 현재 페이지를 제대로 확인하시려면 스크립트 기능을 켜주셔야 합니다. Python - 문자열 수정

Python – 문자열 수정

4일전 작성

Python 문자열 수정 메서드

Python에서 문자열은 불변(immutable) 객체이므로 직접 수정할 수 없다. 문자열 수정 메서드들은 모두 기존 문자열을 기반으로 새로운 문자열을 생성하여 반환한다. 이러한 메서드들은 텍스트 처리, 데이터 정제, 사용자 입력 처리에서 핵심적인 역할을 담당한다.

대소문자 변환

문자열의 대소문자를 변환하는 메서드들은 텍스트 정규화와 비교 연산에서 필수적으로 사용된다. 사용자 입력을 일관된 형식으로 처리하거나 대소문자 구분 없는 검색을 구현할 때 활용된다.

대문자 변환 (upper)

upper() 메서드는 문자열의 모든 알파벳을 대문자로 변환한다. 숫자나 특수문자는 그대로 유지된다.

a = "Hello, World!"
print(a.upper())

위 코드는 “HELLO, WORLD!”를 출력한다. 이 메서드는 텍스트 표준화나 상수 정의에서 자주 사용된다.

소문자 변환 (lower)

lower() 메서드는 문자열의 모든 알파벳을 소문자로 변환한다. 대소문자를 구분하지 않는 비교나 검색에서 핵심적으로 활용된다.

a = "Hello, World!"
print(a.lower())

위 코드는 “hello, world!”를 출력한다.

공백 제거

문자열에서 불필요한 공백을 제거하는 메서드들은 사용자 입력 처리와 데이터 정제에서 가장 빈번하게 사용된다.

양끝 공백 제거 (strip)

strip() 메서드는 문자열의 시작과 끝에서 공백 문자를 제거한다. 스페이스, 탭, 줄바꿈 문자가 모두 제거 대상에 포함된다.

a = " Hello, World! "
print(a.strip())

위 코드는 “Hello, World!”를 출력한다. 문자열 중간의 공백은 제거되지 않는다.

방향별 공백 제거

특정 방향의 공백만 제거해야 하는 경우 lstrip()과 rstrip() 메서드를 사용할 수 있다.

text = "   Python Programming   "
print(text.lstrip())
print(text.rstrip())

lstrip()은 왼쪽 공백만, rstrip()은 오른쪽 공백만 제거한다. 특정 문자를 지정하여 제거하는 것도 가능하다.

url = "www.example.com"
print(url.strip("w."))

위 코드는 “example.com”을 출력한다.

문자열 교체

replace() 메서드는 문자열에서 특정 부분을 다른 문자열로 교체한다. 텍스트 치환과 데이터 변환에서 핵심적인 기능을 제공한다.

기본 교체

replace() 메서드는 첫 번째 매개변수로 찾을 문자열을, 두 번째 매개변수로 교체할 문자열을 받는다.

a = "Hello, World!"
print(a.replace("H", "J"))

위 코드는 “Jello, World!”를 출력한다. 문자열에서 해당하는 모든 부분이 교체된다.

교체 횟수 제한

세 번째 매개변수로 최대 교체 횟수를 지정할 수 있다. 특정 개수만큼만 교체하고 싶을 때 유용하다.

text = "one one one two three"
print(text.replace("one", "ONE", 2))

위 코드는 “ONE ONE one two three”를 출력한다. 처음 두 번의 “one”만 교체된다.

문자열 분할

split() 메서드는 지정된 구분자를 기준으로 문자열을 분할하여 리스트로 반환한다. CSV 데이터 처리나 텍스트 파싱에서 필수적인 기능이다.

구분자 기반 분할

a = "Hello, World!"
print(a.split(","))

위 코드는 [‘Hello’, ‘ World!’]를 출력한다. 쉼표를 기준으로 문자열이 분할된다.

구분자를 지정하지 않으면 모든 공백 문자를 기준으로 분할한다.

text = "apple banana cherry"
print(text.split())

위 코드는 [‘apple’, ‘banana’, ‘cherry’]를 출력한다.

분할 횟수 제한

두 번째 매개변수로 최대 분할 횟수를 지정할 수 있다.

text = "apple-banana-cherry-date"
print(text.split("-", 2))

위 코드는 [‘apple’, ‘banana’, ‘cherry-date’]를 출력한다.

메서드 체이닝과 실용 패턴

실제 프로그래밍에서는 여러 메서드를 연속적으로 적용하여 복잡한 문자열 처리를 수행한다. 메서드 체이닝을 통해 효율적인 텍스트 처리가 가능하다.

user_input = "  HELLO, WORLD!  "
cleaned = user_input.strip().lower().replace("hello", "hi")
print(cleaned)

위 코드는 “hi, world!”를 출력한다. 공백 제거, 소문자 변환, 문자열 교체가 순차적으로 적용된다.

데이터 정제 예제

실제 데이터 처리에서 자주 발생하는 문자열 정제 작업을 살펴보자.

raw_data = ["  Apple  ", "BANANA", "  cherry  ", "DATE"]
cleaned_data = []
for item in raw_data:
cleaned = item.strip().lower().capitalize()
cleaned_data.append(cleaned)
print(cleaned_data)

위 코드는 [‘Apple’, ‘Banana’, ‘Cherry’, ‘Date’]를 출력한다.

문자열 수정 메서드 요약

메서드 기능 예시 입력 결과
upper() 대문자 변환 “Hello, World!” “HELLO, WORLD!”
lower() 소문자 변환 “Hello, World!” “hello, world!”
strip() 양끝 공백 제거 ” Hello, World! “ “Hello, World!”
replace(old, new) 문자열 교체 replace(“H”, “J”) “Jello, World!”
split(sep) 문자열 분할 split(“,”) [‘Hello’, ‘ World!’]

💡 문자열 수정 모범 사례:
• 문자열은 불변이므로 메서드 결과를 새 변수에 할당한다
• 사용자 입력은 항상 strip()으로 공백을 제거한다
• 메서드 체이닝을 활용하여 코드를 간결하게 작성한다
• replace() 사용 시 의도하지 않은 교체가 발생하지 않는지 확인한다
• split() 결과는 리스트이므로 후속 처리에서 인덱싱을 고려한다

Python의 문자열 수정 메서드들은 텍스트 처리의 핵심 도구다. 이러한 메서드들을 적절히 조합하여 사용하면 데이터 정제, 사용자 입력 처리, 텍스트 분석 등 다양한 작업을 효율적으로 수행할 수 있다.

참고
Mingg`s Diary
밍구
공부 목적 블로그