문자열 처리에 대한 알고리즘은 양이 너무 방대하다. 문자열을 파싱하는 것은 각 상황마다 알맞은 알고리즘을 생각해야 하기 때문이다. 나도 문자열 알고리즘에 매우 취약한 편이라서 아예 이번에 문자열 처리 메소드 및 관련 내용에 관한 내용을 정리하는 것이 좋겠다고 생각했다.
C는 속도는 빠르지만 문자열 처리가 복잡하므로 되도록 파이썬으로 문자열 처리를 해보기로 했다. C로 처리할 일이 곧 많이 생기겠지만 ㅠㅜ (C는 문자열을 포인터 연산으로 처리하는것이 가장 좋다.)
1. 문자열 계산하기
len(str) : 문자열 길이를 반환
max(str), min(str) : 문자열 내 문자의 최소/최대 값 반환 (숫자 오름차순 > 알파벳 오름차순)
str.count(finds) : str 문자열 내 finds랑 일치하는 문자열의 개수 반환
2. 특정 문자열 찾기
str.startswith(finds) : str문자열이 finds로 시작하면 True 반환, 아닐시 False 반환
str.endswith(finds) : str 문자열이 finds로 끝나면 True 반환, 아닐시 False 반환
str.find(finds) : str 문자열이 finds이 있는지 앞에서부터 찾아 index 반환, 없으면 -1 반환, 자매품 rfind()
str.index(finds) : find()와 동일한 기능, 매개변수가 없으면 ValueError 반환, 자매품 rindex()
3. 숫자, 문자 포함 여부 확인하기
str.isalnum() : 문자열이 알파벳과 숫자로 이루어져있으면 True, 아닐시 False
str.isalpha() : 문자열이 알파벳으로 이루어져있으면 True, 아닐시 False
str.isdigit() : 문자열이 숫자로 이루어져있으면 True, 아닐시 False, 자매품 isnumeric()
isdecimal() : 문자열이 10진수 문자열이면 True, 아닐시 False
4. 대문자 소문자
str.islower() : 모두 소문자면 True, 아닐시 False
str.isupper() : 모두 대문자면 True, 아닐시 False
str.lower() : 모두 소문자로 변환한 문자열을 반환, 자매품 upper()
str.swapcase() : 소문자 대문자 바꾼 문자열 반환
str.istitle() : 단어의 맨앞글자만 대문자(영어의 제목 형식에 맞게)일시 True 반환, 아닐시 False
str.title() : 단어의 맨앞글자만 대문자로 변환한 문자열 반환
str.capitalize() : 문자열의 맨 앞글자만 대문자로 변환한 문자열 반환
5. 공백 처리하기
str.strip() : 문자열 양쪽의 공백 제거한 문자열 반환, 자매품 lstrip(), rstrip()
str.isspace() : 문자열이 모두 공백이면 True, 아닐시 False
str.center(width) : 총 길이가 width가 되도록 양쪽에 공백을 추가하여 중앙정렬
6. 문자열 수정하기
str.split(sep = ',') : 문자열을 ',' 기준으로 나누어서 리스트로 저장한것 반환 (다중반환값 가능, 입력변수 없을경우 기본값은 space)
str.splitlines() : 문자열을 '\n' 기준으로 나눈다. 나머지는 split이랑 동일
str.replace(old, new, max) : old 문자열을 new 문자열로 고쳬, max가 있을 경우 max 개수 만큼만 교체한다.
seps.join(strs) : strs 안에 있는 문자들을 spes 로 구분하여 한 개의 문자열을 만들어 그것을 반환한다.
str.zfill(width) : 문자열 앞에 0을 채워 전체 길이가 width가 되게 함.
str.ljust(width, fillchar) : 문자열을 width 길이로 만든다. 원본은 왼쪽으로, 남은칸은 fillchar로 채운것을 반환, 자매품 rjust()
table = str.maketrans('aeiou', '12345) : 첫번째 매개변수의 문자열을 2번째 매개변수에 1대1 대응되는 문자로 반환 가능한 테이블을 만든다. translate랑 같이 쓴다.
str.translate(table) : str에 있는 문자가 table에 있는 문자랑 대응이 되면 치환한다. 없으면 치환하지 않는다. 치환한 문자열을 반환
7. 문자열 연산자
문자열 더해서 연결하기 : +
같은 내용 반복하기 : *
문자열 처리 너무 어렵다. 위에 제시된 내용들을 바탕으로 응용하는 능력이 아직 많이 부족한것 같다. 꾸준한 연습이 필요하다고 생각한다.
'프로그래밍 언어 > Python' 카테고리의 다른 글
Python 코딩테스트 준비하기 (0) | 2022.10.14 |
---|---|
urllib SSL: CERTIFICATE_VERIFY_FAILED 에러 해결하기 (0) | 2021.09.16 |
파이썬에서 시리얼 통신 (UART) 하기 (0) | 2020.08.20 |
파이썬과 Firebase 연동하기 (2) | 2020.07.23 |
파이썬으로 일정한 시간마다 동작 수행하기 (0) | 2020.07.10 |