본문 바로가기
Python

공백 제거 (파이썬 함수)

by yororing 2024. 8. 23.

00 개요

  • Python에서 문자열의 공백을 제거하는 함수와 메서드에 대한 정리

1. 공백 제거란

  • 공백 제거: 문자열에서 불필요한 공백 문자를 제거하는 작업을 의미
  • 공백 문자는 스페이스( ), 탭(\t), 줄 바꿈(\n), 캐리지 리턴(\r) 등 다양한 형태로 존재 가능

2. 목적 및 사용 사례

1) 목적

  • 문자열의 불필요한 공백을 제거하여 데이터의 일관성을 유지하거나, 데이터를 처리하기 쉽게 만들기 위함

2) 사용 사례

  • 입력 데이터 정리
    • 사용자가 입력한 데이터에서 불필요한 공백을 제거하여 데이터가 깨끗하고 일관되도록 보장
    • 예) 사용자 로그인 폼에서 사용자 이름에 추가된 공백을 제거하여 일관된 사용자 이름 추출 가능
  • 파일 처리
    • 파일에서 읽어온 데이터에 포함된 공백을 제거하여 데이터의 정밀도를 높이거나 분석을 용이하게 함
  • 문자열 비교
    • 문자열 비교 시 공백이 문제를 일으킬 수 있으므로, 공백을 제거하여 비교가 정확하게 이루어지도록 함

3. 공백 제거의 장점

  • 데이터 정제: 데이터를 일관되게 정리하여 분석이나 처리에 용이하게 함
  • 형식 통일: 문자열의 형식을 통일하여 비교나 검색을 정확하게 할 수 있게 함
  • 오류 방지: 공백으로 인한 오류나 문제를 방지

01 공백 제거 파이썬 함수

1. str.strip()

  • 기능: 문자열의 양 끝에 있는 공백 문자(스페이스, 탭, 줄 바꿈 등) 제거
s = "    Hello    " 
result = s.strip() 
print(result) 
# "Hello"

2. str.lstrip()

  • 기능: 문자열의 왼쪽(시작 부분)에 있는 공백 문자(스페이스, 탭, 줄 바꿈 등) 제거
s = "     Hello, World!      "
result = s.lstrip() 
print(result) 
# "Hello, World!      "

3. str.rstrip()

  • 기능: 문자열의 오른쪽(끝 부분)에 있는 공백 문자(스페이스, 탭, 줄 바꿈 등) 제거
s = "     Hello, World!     " 
result = s.rstrip() 
print(result) 
# "     Hello, World!"

4. str.replace()

  • 기능: 문자열의 모든 공백 문자(특정 문자열도 가능)를 다른 문자열로 대체. 
  • 공백을 빈 문자열로 대체하여 공백 제거 가능
s = "Hello W   orld!" 
result = s.replace("   ", "") 
print(result) 
# "Hello World!"

5. str.split() + str.join()

  • str.split() 기능: 문자열을 공백을 기준으로 나누어 리스트로 반환
  • str.join(iterable) 기능: iterable한 객체의 모든 아이템을 합체시켜 한 문자열로 반환
    • iterable은 tuple, list, set, dict, str 등이 올 수 있음
  • str.split()과 str.join()을 함께 사용하여 문자열의 공백을 제거 및 다시 추가 가능 
s = "         Hello World!        "
splited = s.split()
print(splited)
# ["Hello", "World!"]

result = " ".join(splited)
print(result) 
# "Hello World!"

7. str.maketrans() 및 str.translate()

  • str.maketrans() 기능: 문자열의 문자를 다른 문자로 치환 또는 삭제하는 변환 테이블 생성
str.maketrans(x, y, z)
# x: 변환할 문자가 포함된 문자열
# y: x의 각 문자를 대응하는 문자로 변환할 문자열. x와 y의 길이는 동일 필수
# z: 삭제할 문자가 포함된 문자열 (선택적)

# 문자 치환
translation_table = str.maketrans("ab", "12") # "a"는 "1"로, "b"는 "2"로 변환됨

# 문자 삭제
translation_table = str.maketrans("", "", "ae") # "a", "e" 문자는 삭제됨
  • str.translate() 기능: str.maketrans()로 생성된 변환 테이블을 사용하여 문자열 내 문자를 변환하거나 삭제 
  • 두 기능을 함께 사용하면 복잡한 문자열 변환 가능
s = "Hello  World!"
table = str.maketrans('', '', ' ')   # ' '는 삭제됨
result = s.translate(table)          # table에 적용된 법 적용
print(result)  # "HelloWorld!"