Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python 내장 문자열 메서드 완벽 정리: 자주 쓰는 40가지 함수 한눈에 보기

Python 내장 문자열 메서드란?

Python은 별도의 모듈을 import하지 않아도 바로 사용할 수 있는 다양한 내장 문자열 메서드를 제공합니다. 문자열의 대소문자 변환, 특정 문자 검색, 분할과 결합, 공백 제거, 형식 판별 등 텍스트를 다루는 데 필요한 거의 모든 작업을 이러한 메서드만으로 처리할 수 있습니다.

이 글에서는 Python에서 자주 사용되는 40가지 내장 문자열 메서드를 기능별로 분류하여 정리했습니다. 각 메서드의 역할을 빠르게 참조하고 싶을 때 유용하게 활용해 보세요.

1. 대소문자 변환 및 조작

메서드설명
capitalize()문자열의 첫 글자만 대문자로 변환합니다.
lower()문자열 내 모든 대문자를 소문자로 변환합니다.
upper()문자열 내 모든 소문자를 대문자로 변환합니다.
swapcase()문자열 내 모든 문자의 대소문자를 반전시킵니다(대→소, 소→대).
title()각 단어의 첫 글자는 대문자로, 나머지는 소문자로 변환한 '제목 스타일' 문자열을 반환합니다.

2. 문자 검색 및 위치 확인

메서드설명
find(str, beg=0, end=len(string))지정한 범위(beg~end) 내에서 str이 처음 나타나는 인덱스를 반환하며, 찾지 못하면 -1을 반환합니다.
rfind(str, beg=0, end=len(string))find()와 동일하지만 문자열의 뒤쪽부터 검색합니다.
index(str, beg=0, end=len(string))find()와 동일하게 위치를 반환하지만, str을 찾지 못하면 ValueError 예외를 발생시킵니다.
rindex(str, beg=0, end=len(string))index()와 동일하지만 문자열의 뒤쪽부터 검색합니다.
count(str, beg=0, end=len(string))지정한 범위 내에서 str이 등장하는 횟수를 반환합니다.
startswith(str, beg=0, end=len(string))문자열(또는 지정한 범위의 부분 문자열)이 str로 시작하면 True, 아니면 False를 반환합니다.
endswith(suffix, beg=0, end=len(string))문자열(또는 지정한 범위의 부분 문자열)이 suffix로 끝나면 True, 아니면 False를 반환합니다.

3. 문자열 판별(is 계열)

메서드설명
isalnum()문자열이 최소 1개 이상의 문자를 가지며 모두 영숫자(알파벳+숫자)이면 True를 반환합니다.
isalpha()문자열이 최소 1개 이상의 문자를 가지며 모두 알파벳이면 True를 반환합니다.
isdigit()문자열이 숫자(digit)로만 구성되어 있으면 True를 반환합니다.
isdecimal()유니코드 문자열이 십진수(decimal) 문자로만 구성되어 있으면 True를 반환합니다.
isnumeric()유니코드 문자열이 숫자(numeric) 문자로만 구성되어 있으면 True를 반환합니다.
islower()대소문자를 구분하는 문자가 모두 소문자이면 True를 반환합니다.
isupper()대소문자를 구분하는 문자가 모두 대문자이면 True를 반환합니다.
isspace()문자열이 공백 문자(whitespace)로만 구성되어 있으면 True를 반환합니다.
istitle()문자열이 올바른 '제목 스타일'(각 단어가 대문자로 시작)이면 True를 반환합니다.

4. 정렬 및 패딩(채우기)

메서드설명
center(width, fillchar)원본 문자열을 전체 width 폭 기준으로 가운데 정렬하고, 남는 공간을 공백(또는 fillchar)으로 채운 문자열을 반환합니다.
ljust(width[, fillchar])원본 문자열을 width 폭 기준으로 왼쪽 정렬하고, 나머지를 공백으로 채운 문자열을 반환합니다.
rjust(width[, fillchar])원본 문자열을 width 폭 기준으로 오른쪽 정렬하고, 나머지를 공백으로 채운 문자열을 반환합니다.
zfill(width)전체 길이가 width가 되도록 문자열 왼쪽에 '0'을 채워 반환합니다. 숫자용으로 설계되었으며, 부호(+/-)는 그대로 유지됩니다.
expandtabs(tabsize=8)문자열 내 탭( )을 여러 개의 공백으로 확장합니다. tabsize를 지정하지 않으면 기본값 8칸이 적용됩니다.

5. 분할과 결합

메서드설명
split(str="", num=string.count(str))구분자 str(미지정 시 공백)을 기준으로 문자열을 나누어 부분 문자열 리스트를 반환합니다. num을 지정하면 최대 num번까지만 분할합니다.
splitlines(num=string.count('\n'))줄바꿈 문자(\n)를 기준으로 문자열을 나누고, 줄바꿈이 제거된 각 행의 리스트를 반환합니다.
join(seq)시퀀스(seq)의 요소들을 호출한 문자열을 구분자로 하여 하나의 문자열로 연결합니다.

6. 공백 제거 및 문자 치환

메서드설명
strip([chars])문자열 양쪽 끝의 공백(chars 지정 시 해당 문자들)을 모두 제거합니다. lstrip()과 rstrip()을 동시에 수행하는 효과입니다.
lstrip()문자열 앞쪽(왼쪽)의 공백을 모두 제거합니다.
rstrip()문자열 뒤쪽(오른쪽)의 공백을 모두 제거합니다.
replace(old, new[, max])문자열 내의 old를 new로 치환합니다. max를 지정하면 최대 max번까지만 치환합니다.
maketrans()translate()에서 사용할 문자 변환 테이블을 생성하여 반환합니다.
translate(table, deletechars="")변환 테이블(table)에 따라 문자를 치환하고, deletechars에 지정된 문자는 삭제합니다.

7. 기타 유틸리티

메서드설명
len(string)문자열의 길이(문자 개수)를 반환합니다.
max(str)문자열에서 사전 순(알파벳 순)으로 가장 큰 문자를 반환합니다.
min(str)문자열에서 사전 순(알파벳 순)으로 가장 작은 문자를 반환합니다.
encode(encoding='UTF-8', errors='strict')문자열을 지정한 인코딩 방식으로 인코딩한 바이트 객체를 반환합니다. 오류 발생 시 errors='ignore' 또는 'replace'를 지정하지 않으면 ValueError가 발생합니다.
decode(encoding='UTF-8', errors='strict')지정한 인코딩에 등록된 코덱을 사용해 바이트 데이터를 문자열로 디코딩합니다. ※ Python 3에서는 bytes 객체의 메서드로 사용됩니다.

마무리: 문자열 메서드 활용 팁

Python의 문자열 메서드는 원본 문자열을 변경하지 않고 새로운 문자열을 반환한다는 점을 기억하세요. Python 문자열은 불변(immutable) 객체이기 때문입니다. 또한 isalpha(), isdigit(), isalnum() 같은 판별 메서드는 사용자 입력 검증에, strip()과 split()은 데이터 전처리에 특히 자주 활용되므로 꼭 익혀두는 것이 좋습니다.