[Python] 파이썬 문자열 처리 함수

김재연·2022년 7월 5일
0
post-thumbnail

1. 문자열 슬라이싱

[:] : 처음부터 끝까지
[start:] : start부터 끝까지
[:end] : 처음부터 end-1까지
[start:end] : start부터 end-1까지
[start:end:step] : start부터 end-1까지 step만큼 문자를 건너뛰면서

>>> s1 = “this is python string”

>>> s1[:]                               # 처음부터 끝까지
       ‘this is python string”
>>> s1[8:]                             # 8번째 문자부터 끝까지
       ‘python string’
>>> s1[:7]                             # 처음부터 6번째 문자까지
       ‘this is’
>>> s1[8:14]                         # 8번째 문자부터 13번째 문자까지
       ‘python’
>>> s1[-6:]                            # 뒤에서 6번째 문자부터 끝까지
       ‘string’
>>> s1[:-7]                            # 처음부터 뒤에서 8번째 문자까지
       ‘this is python’
>>> s1[0:len(s1):2]               # 처음부터 끝까지 2개씩 건너뛰기
       ‘ti spto tig’

2. 문자열 계산하기

len

: 문자열 길이 구하기

>>> s1 = “this is python string”
>>> len(s1)
       21

min, max

: 문자열 내 문자의 최소값/최대값 반환

>>> s1 = “abcde”
>>> s2 = “12345”
>>> min(s1)
       ‘a’
>>> max(s1)
       ‘e’
>>> min(s2)
       ‘1’
>>> max(s2)
       ‘5’

count

: 문자열이 나온 횟수 (시작지점과 끝지점 지정 가능)

>>> s1 = “this is python string”
>>> s1.count(‘i’)
       3
>>> s1.count(‘a’)
       0
>>> s1.count(‘i’, 8, len(s1))   # 8번째 문자부터 끝까지 ‘i’가 나온 횟수
       1

3. 문자열 찾기

index

: 찾으려는 문자열의 시작 인덱스 (앞에서부터 탐색)

>>> s1 = “this is python string”
>>> s1.index(‘i’)
       2
>>> s1.index(‘a’)   # 없으면 에러
       ValueError: substring not found

rindex

: 찾으려는 문자열의 시작 인덱스 (뒤에서부터 탐색)

>>> s1 = “this is python string”
>>> s1.rindex(‘i’)
       18
>>> s1.rindex(‘a’)   # 없으면 에러
       ValueError: substring not found

find

: 찾으려는 문자열의 시작 인덱스 (앞에서부터 탐색)

>>> s1 = “this is python string”
>>> s1.find(‘n’)
       13
>>> s1.find(‘k’)   # 없으면 -1
       -1

rfind

: 찾으려는 문자열의 시작 인덱스 (뒤에서부터 탐색)

>>> s1 = “this is python string”
>>> s1.find(‘n’)
       19
>>> s1.rfind(‘k’)   # 없으면 -1
       -1

startswith

: 특정 문자열로 시작하면 True, 아니면 False

>>> s1 = “this is python string”
>>> s1.startswith(‘this’)
       True
>>> s1.startswith(‘string’)
       False

endswith

: 특정 문자열로 끝나면 True, 아니면 False

>>> s1 = “this is python string”
>>> s1.endswith(‘this’)
       False
>>> s1.endswith(‘string’)
       True

4. 문자열 공백 처리하기

strip

: 공백 지우기

>>> s1 = “             this is python string            ”
>>> s1.strip()
       ‘this is python string’

lstrip

: 문자열의 왼쪽에 있는 공백 제거

>>> s1 = “             this is python string”
>>> s1.lstrip()
       ‘this is python string’

rstrip

: 문자열의 오른쪽에 있는 공백 제거

>>> s1 = “this is python string            ”
>>> s1.rstrip()
       ‘this is python string’

isspace

: 문자열이 모두 공백이면 True, 아니면 False

>>> s1 = “this is python string      ”
>>> s2 = “             “
>>> s1.isspace()
       False
>>> s2.isspace()
       True

center

: 지정한 총 길이가 되도록 양쪽에 공백을 추가하여 중앙정렬

>>> s1 = “this is python string”
>>> s1.center(30)   # center(문자열의 폭)
       ‘    this is python string     ’

5. 대소문자

lower

: 문자열 안의 모든 대문자를 소문자로 변환

>>> s1 = “This Is Python String”
>>> s1.strip()
       ‘this is python string’

upper

: 문자열 안의 모든 소문자를 대문자로 변환

>>> s1 = “This Is Python String”
>>> s1.strip()
       ‘THIS IS PYTHON STRING’

islower

: 문자열이 모두 소문자면 True, 아니면 False

>>> s1 = “This Is Python String”
>>> s2 = “this is python string”
>>> s1.islower()
       False
>>> s2.islower()
       True

isupper

: 문자열이 모두 대문자면 True, 아니면 False

>>> s1 = “This Is Python String”
>>> s2 = “THIS IS PYTHON STRING”
>>> s1.islower()
       False
>>> s2.islower()
       True

swapcase

: 소문자와 대문자를 바꾼 문자열 반환

>>> s1 = “This Is Python String”
>>> s1.swapcase()
       ‘tHIS iS pYTHON sTRING’

title

: 단어의 맨 앞 글자만 대문자로 변환한 문자열 반환

>>> s1 = “this is python string”
>>> s2 = “THIS IS PYTHON STRING”
>>> s1.title()
       ‘This Is Python String’
>>> s2.title()
       ‘This Is Python String’

istitle

: 단어의 맨 앞 글자만 대문자면 True, 아니면 False

>>> s1 = “This Is Python String”
>>> s2 = “This is python string”
>>> s1.istitle()
       True
>>> s2.istitle()
       False

capitalize

: 문자열의 맨 앞 글자만 대문자로 변환한 문자열 반환

>>> s1 = “this is python string”
>>> s2 = “THIS IS PYTHON STRING”
>>> s1.capitalize()
       ‘This is python string’
>>> s2.capitalize()
       ‘This is python string’

6. 문자열 수정하기

split

: 구분자를 기준으로 문자열 나누기

>>> s1 = “this, is, python, string”
>>> s2 = “this is python string”
>>> s1.split(‘,’)   # split(‘구분자’)
       [‘this’, ‘ is’, ‘ python’, ‘ string’]
>>> s2.split()      # default 값은 공백(‘ ’)
       [‘this’, ‘is’, ‘python’, ‘string’]

splitlines

: 여러줄의 문자열을 줄바꿈(‘\n’) 기준으로 나눔

>>> s1 = “this\n is\n python\n string”
>>> s1.splitlines()
       [‘this’, ‘ is’, ‘ python’, ‘ string’]

replace

: 문자열 바꾸기

>>> s1 = “this is python string”
>>> s2 = “this is python string string string string”
>>> s1.replace(‘python’, ‘my’)    # replace(‘기존 문자열’, ‘새 문자열’)
       ‘this is my string’
>>> s2.replace(‘string’, ‘S’, 3)    # replace(‘기존 문자열’, ‘새 문자열’, ‘개수’)
       ‘this is python S S S string’ # 4번째 ‘string’은 교체하지 않음

join

: 여러개의 문자열을 구분자와 함께 합쳐서 하나의 문자열로 변환

>>> s1 = [‘this’, ‘is’, ‘python’, ‘string’]
>>> print(s1)
       [‘this’, ‘is’, ‘python’, ‘string’]
>>> s2 = “_”.join(s1)   # “구분자”.join(여러개의 문자열)
>>> print(s2)
       this_is_python_string

zfill

: 지정된 길이에 맞춰서 문자열의 왼쪽에 0을 채움

>>> s1 = “python”
>>> s1.zfill(10)   # zfill(문자열의 길이)
       ‘0000python’

ljust

: 문자열을 지정된 길이로 만든 뒤 왼쪽으로 정렬하며 남는 공간을 지정된 문자로 채움

>>> s1 = “python”
>>> s1.ljust(10, ‘*’)   # ljust(문자열의 길이, 채울 문자)
       ‘python****’

rjust

: 문자열을 지정된 길이로 만든 뒤 오른쪽으로 정렬하며 남는 공간을 지정된 문자로 채움

>>> s1 = “python”
>>> s1.rjust(10, ‘*’)    # rjust(문자열의 길이, 채울 문자)
       ‘****python’

maketrans / translate

: 문자를 다른 문자로 바꾸는 테이블 생성 / 문자열 안의 문자를 다른 문자로 바꿈

>>> s1 = “this is python string”
>>> table = str.maketrans(‘tps’, ‘123’)   # t->1, p->2, s->3으로 변환
>>> s1.translate(table)
       ‘1hi3 i3 2y1hon 31ring’

7. 문자열 연산자

+

: 여러개의 문자열을 더해서 연결하기

>>> s1 = “this is”
>>> s2 = “ python string”
>>> s1 + s2
       ‘this is python string’

*

: 같은 문자열을 여러번 반복하기

>>> s1 = “python”
>>> s1 * 3   # 3번 반복
       ‘pythonpythonpython’

8. 숫자와 문자

isalnum

: 문자열이 알파벳과 숫자로만 이루어져 있으면 True, 아니면 False

>>> s1 = “this is python string”
>>> s2 = “python”
>>> s3 = “123”
>>> s4 = “python123”
>>> s1.isalnum()   # 공백이 있어서 False
       False
>>> s2.isalnum()
       True
>>> s3.isalnum()
       True
>>> s4.isalnum()
       True

isalpha

: 문자열이 알파벳으로만 이루어져 있으면 True, 아니면 False

>>> s1 = “this is python string”
>>> s2 = “python”
>>> s3 = “123”
>>> s4 = “python123”
>>> s1.isalpha()   # 공백이 있어서 False
       False
>>> s2.isalpha()
       True
>>> s3.isalpha()
       False
>>> s4.isalpha()
       False

isdigit, isnumeric

: 문자열이 숫자로만 이루어져 있으면 True, 아니면 False

>>> s1 = “this is python string”
>>> s2 = “python”
>>> s3 = “123”
>>> s4 = “python123”
>>> s1.isdigit()   # 또는 s1.isnumeric()
       False
>>> s2.isdigit()   # 또는 s2.isnumeric()
       False
>>> s3.isdigit()   # 또는 s3.isnumeric()
       True
>>> s4.isdigit()   # 또는 s4.isnumeric()
       False

isdecimal

: 문자열이 10진수 문자열이면 True, 아니면 False

>>> s1 = “this is python string”
>>> s2 = “python”
>>> s3 = “123”
>>> s4 = “python123”
>>> s1.isdecimal()
       False
>>> s2.isdecimal()
       False
>>> s3.isdecimal()
       True
>>> s4.isdecimal()
       False
profile
일기장같은 공부기록📝

0개의 댓글