문자 개수 세기 - count()
문자열 내부에서 특정 문자가 등장하는 횟수를 반환한다.
- 특정 문자가 존재하지 않는 경우, 0을 반환한다.
[문자열].count(x)
- 문자열 전 범위에서
x
가 등장하는 횟수를 반환한다.
[문자열].count(x, start)
- 문자열
start
index부터 시작해서 문자열 끝까지x
가 등장하는 횟수를 반환한다.
[문자열].count(x, start, end)
- 문자열
start
index부터 시작해서end
index 부분까지의 부분 문자열부터x
가 등장하는 횟수를 반환한다.
예제
s = 'banana'
print(s.count('a')) # 3
print(s.count('a', 2)) # 2
print(s.count('a', 2, 4)) # 1
문자열 검색
find(sub[, start[, end]])
문자열 내부에 서브 시퀀스 sub가 s[start:end] 내에 존재하는지 확인하고, 존재하는 위치의 index를 반환한다.
- 문자열 내부에 특정 문자가 존재하지 않는 경우에는 -1을 반환한다.
- 찾는 문자가 여러 개 존재할 경우, 맨 처음 인덱스를 반환한다.
[문자열].find(x)
- 문자열 전 범위에서
x
가 존재하는 인덱스를 반환한다.
[문자열].find(x, start)
- 문자열
start
index 부분부터 시작해서 문자열 끝까지x
가 존재하는 인덱스를 반환한다.
[문자열].find(x, start, end)
- 문자열
start
index 부분부터end
index 부분까지의 부분 문자열에서x
가 존재하는 인덱스를 반환한다.
📌 rfind()
- 추가적으로 찾고 싶은 문자가 여러 개일 때 마지막 인덱스를 반환해주고 싶을 경우 rfind()를 사용하면 된다.
- 사용법은 find() 함수와 동일하다.
예제
s = 'banana'
print(s.find('a')) # 1
print(s.find('a', 2)) # 3
print(s.find('a', 4, 6)) # 5
index(sub[, start[, end]])
문자열 내부에 서브 시퀀스 sub가 s[start:end] 내에 존재하는지 확인하고, 존재하는 위치의 index를 반환한다.
find()
vs index()
📌 rindex(): rfind()처럼 찾고 싶은 문자가 여러 개일때 마지막 인덱스를 반환해준다.
소문자 ↔️ 대문자 변환
upper()
, lower()
[문자열].upper()
- 문자열의 모든 문자를 대문자로 바꿔준다.
[문자열].lower()
- 문자열의 모든 문자를 소문자로 바꿔준다.
swapcase()
[문자열].swapcase()
- 문자열의 소문자는 대문자로, 대문자는 소문자로 서로 바꿔준다.
예제
s = "Hello World"
print(s.upper()) # HELLO WORLD
print(s.lower()) # hello world
print(s.swapcase()) # hELLO wORLD
공백 제거
lstrip()
, rstrip()
[문자열].lstrip()
- 기존 문자열에 있는 왼쪽 공백을 제거한 문자열을 반환한다.
[문자열].rstrip()
- 기존 문자열에 있는 오른쪽 공백을 제거한 문자열을 반환한다.
strip()
[문자열].strip()
- 기존 문자열에 있는 양쪽 공백을 제거한 문자열을 반환한다.
예제
s = " Hello World "
print('<' + s.lstrip() + '>') # <Hello World >
print('<' + s.rstrip() + '>') # < Hello World>
print('<' + s.strip() + '>') # <Hello World>
문자열 합치기 - join(iterable)
매개변수로 들어온 (문자로 이루어진) iterable 객체의 요소를 합쳐서 하나의 문자열로 바꾸어 변환한다.
''.join(iterable)
- 매개변수로 들어온 iterable 객체를 문자열로 합쳐서 반환해준다.
'[구분자]'.join(iterable)
- iterable의 값과 값 사이에 구분자에 들어온 구분자를 넣어서 하나의 문자열로 합쳐서 반환한다.
예제
numbers = ['1', '2', '3']
print(''.join(numbers)) # 123
print(', '.join(numbers)) # 1, 2, 3
문자열 바꾸기 - replace(old, new[, count])
기존의 문자(열) 요소를 원하는 문자(열)로 바꿀 때 사용한다.
[문자열].replace(old, new)
- 기존 문자에 있는
old
문자를new
문자로 변경해서, 그 변경한 문자열을 반환한다.
[문자열].replace(old, new, count)
- 해당 문자가 여러 개 존재할 때, 일부만 변경하고 싶을 때 사용한다.
- 기존 문자에 있는
old
문자를new
문자로count
개수만큼만 변경해서, 그 변경한 문자열을 반환한다.
💡 replace()를 한 뒤, 원본 문자열은 변경되지 않는다.
문자열 나누기 - split(sep=None, maxsplit=-1)
문자열을 일정한 규칙으로 잘라서 리스트로 만들어 주는 함수이다.
[문자열].split()
- 공백(스페이스, 탭, 엔터 등)을 기준으로 문자열을 나눈다.
[문자열].split(구분자)
- 구분자를 기준으로 문자열을 나눈다.
[문자열].split(구분자, 분할 횟수)
- 구분자를 기준으로 분할 횟수만큼 문자열을 나눈다.
예제
s = "abc, de, f, g"
print(s) # abc, de, f, g
print(s.split()) # ['abc,', 'de,', 'f,', 'g']
print(s.split(',')) # ['abc', ' de', ' f', ' g']
기타 메소드
특정 문자열로 시작/끝나는지 판단하는 메소드 - startswith(prefix[, start, [end]])
, endswith(suffix[, start, [end]])
[문자열].startswith(특정문자, start, end)
- 문자열
start
index 부분부터end
index 부분까지의 부분 문자열이 특정문자로 시작하는지 여부를 반환한다.
[문자열].endswith(특정문자, start, end)
- 문자열
start
index 부분부터end
index 부분까지의 부분 문자열이 특정문자로 끝나는지 여부를 반환한다.
문자인지? 숫자인지? - isalpha()
, isascii()
, isdigit()
[문자열].isalpha()
- 문자열의 모든 문자가 알파벳 ASCII 문자이고, 시퀀스가 비어 있지 않으면 True를, 아니면 False를 반환한다.
[문자열].isascii()
- 시퀀스가 비어 있거나 모든 문자가 ASCII 이면 True를, 아니면 False를 반환한다.
[문자열].isdigit()
- 문자열의 모든 문자가 ASCII 십진수이며, 시퀀스가 비어 있지 않으면 True를, 아니면 False를 반환한다.
Reference
'Language > Python' 카테고리의 다른 글
[Python] 슬라이싱에 대해 알아보자! (0) | 2023.10.12 |
---|---|
[Basic] Python 2차원 리스트의 최댓값, 최솟값 구하기 (0) | 2023.06.27 |
[Math] 올림, 내림, 버림, 반올림 함수 (0) | 2023.06.22 |
[Basic] Python으로 입출력하기 (1) | 2023.06.13 |