# 문자열 분리하기
- split()
- 문자열(str)에서 구분자(separator)인 sep을 기준으로 문자열을 분리해 리스트로 반환한다.
- 구분자(sep)를 입력하지 않고 str.split()을 수행하면 문자열 사이의 모든 공백과 개행문자(\n)를 없애고 분리된 문자열을 항목으로 담은 리스트를 반환한다.
str.split([sep]) # 대괄호([]) 부분은 생략할 수 있다
coffee_menu_str = "에스프레소,아메리카노,카페라테,카푸치노"
coffee_menu_str.split(',') # ['에스프레소', '아메리카노', '카페라테', '카푸치노'] # 리스트로 반환
# 문자열에 직접 split() 메서드 사용하기
"에스프레소,아메리카노,카페라테,카푸치노".split(',')
# ['에스프레소', '아메리카노', '카페라테', '카푸치노']
"에스프레소 아메리카노 카페라테 카푸치노".split(' ')
# ['에스프레소', '아메리카노', '카페라테', '카푸치노']
"에스프레소.아메리카노.카페라테.카푸치노".split('.')
# ['에스프레소', '아메리카노', '카페라테', '카푸치노']
# 문자열에 인자 없이 split()를 사용하면 문자열 사이의 모든 공백과 개행문자를 없애고 분리된 문자열을 반환한다.
" 에스프레소 \n\n 아메리카노 \n 카페라테 카푸치노 \n\n".split()
# ['에스프레소', '아메리카노', '카페라테', '카푸치노']
- maxsplit
- 문자열을 분리할 때 인자 maxsplit을 추가하면 앞에서부터 원하는 횟수만큼만 문자열을 분리한다.
str.split([sep, ]maxsplit=숫자)
"에스프레소 아메리카노 카페라테 카푸치노".split(maxsplit=2)
# ['에스프레소', '아메리카노', '카페라테 카푸치노']
- 예: 국가 번호까지 있는 전화번호에서 국가 번호를 뺀 나머지 번호 구하기
phone_number = "+82-01-2345-6789" # 국가 번호가 포함된 전화번호
split_num = phone_number.split("-", 1) # 국가 번호와 나머지 번호 분리
print(split_num) # ['+82', '01-2345-6789']
print(f"국내전화번호: {split_num[1]}") # 국내전화번호: 01-2345-6789
# 필요없는 문자열 삭제하기
- strip()
- 문자열(str)의 앞과 뒤에서 시작해서 지정한 문자(chars) 외의 다른 문자를 만날 때까지 지정한 문자(chars)를 모두 삭제한 문자열을 반환한다.
- 만약 지정한 문자(chars)와 일치하는 것이 없으면 문자열(str)을 그대로 반환한다.
- 지정한 문자(chars)가 여러 개일 경우 순서는 상관 없다.
- 지정한 문자(chars) 없이 str.strip()를 수행하면 문자열 앞과 뒤의 모든 공백과 개행문자(\n)를 삭제한 후에 문자열을 반환한다.
text = " Python "
text.strip() # 'Python'
"aaaPythonaaa".strip('a') # 'Python'
test_str = "aaaaabbPythonbbaaaaaa"
temp1 = test_str.strip('a')
temp1 # 'bbPythonbb' # 문자열 앞뒤의 'a' 제거
temp1.strip('b') # 'Python' # 문자열 앞뒤의 'b' 제거
test_str.strip('ab') # 'Python' # 문자열 앞뒤의 'a'와 'b' 제거
test_str.strip('ba') # 'Python' # 지우고자 하는 문자의 순서는 상관 없다
# 문자열의 앞뒤에서 지정한 문자 외 다른 문자를 만날 때까지만 지정한 문자를 모두 삭제한다
"aaaBallaaa".strip('a') # 'Ball'
# 문자열의 왼쪽 부분만 삭제하기
str_lr = "000Python is easy to learn.000"
str_lr.lstrip('0') # 'Python is easy to learn.000'
# 문자열의 오른쪽 부분만 삭제하기
str_lr.rstrip('0') # '000Python is easy to learn.'
# 문자열 연결하기
- 더하기 연산자(+)
name1 = '철수'
name2 = '영미'
hello = '님, 주소와 전화 번호를 입력해 주세요'
print(name1 + hello) # 철수님, 주소와 전화 번호를 입력해 주세요
print(name2 + hello) # 영미님, 주소와 전화 번호를 입력해 주세요
- join()
- 문자열을 항목으로 갖는 시퀀스(seq)의 항목 사이에 구분자 문자열(str)을 모두 넣은 후에 문자열로 반환한다.
- 시퀀스: 리스트나 튜플과 같이 여러 데이터를 순서대로 담고 있는 나열형 데이터
- 문자열을 항목으로 갖는 시퀀스(seq)의 항목 사이에 구분자 문자열(str)을 모두 넣은 후에 문자열로 반환한다.
str.join(seq)
address_list = ['서울시', '서초구', '반포대로', '201(반포동)']
# 문자열 리스트를 공백으로 연결해서 문자열 생성하기
a = " " # 리스트의 각 값 사이에 공백을 넣음
a.join(address_list) # '서울시 서초구 반포대로 201(반포동)'
# 구분자 문자열을 변수에 할당하지 않고 직접 지정하기
" ".join(address_list # '서울시 서초구 반포대로 201(반포동)'
# 문자열 찾기
- find()
- 문자열(str)에서 찾으려는 검색 문자열(search_str)과 첫 번째로 일치하는 문자열(str)의 위치를 반환한다.
- 문자열의 위치는 0부터 시작한다.
- 만약 문자열에서 검색 문자열을 찾을 수 없으면 -1을 반환한다.
str.find(search_str)
str_f = 'Python code.'
print("찾는 문자열의 위치:", str_f.find('Python')) # 찾는 문자열의 위치: 0
print("찾는 문자열의 위치:", str_f.find('code')) # 찾는 문자열의 위치: 7
print("찾는 문자열의 위치:", str_f.find('n')) # 찾는 문자열의 위치: 5
print("찾는 문자열의 위치:", str_f.find('easy')) # 찾는 문자열의 위치: -1
- count()
- 문자열(str)에서 찾고자 하는 문자열(search_str)과 일치하는 횟수를 반환하고, 없으면 0을 반환한다.
str_c = "Python is powerful. Python is easy to learn. Python is open"
print("Python의 개수는?", str_c.count("Python")) # Python의 개수는? 3
print("powerful의 개수는?", str_c.count("powerful")) # powerful의 개수는? 1
print("Java의 개수는?", str_c.count("Java")) # Java의 개수는? 0
- startswith()
- 문자열(str)이 지정된 문자열(prefix)로 시작되면 True를, 그렇지 않으면 False를 반환한다.
- endswith()
- 문자열(str)이 지정된 문자열(suffix)로 끝면 True를, 그렇지 않으면 False를 반환한다.
str.startswith(prefix)
str.endswith(suffix)
str_c = "Python is powerful. Python is easy to learn. Python is open."
print("Python으로 시작?", str_c.startswith('Python')) # Python으로 시작? True
print("easy로 시작?", str_c.startswith('easy')) # easy로 시작? False
print(".로 끝?", str_c.endswith('.')) # .로 끝? True
print("!로 끝?", str_c.endswith('!')) # !로 끝? False
# 문자열 바꾸기
- replace()
- 문자열(str)에서 지정한 문자열(old)을 찾아서 새로운 문자열(new)로 바꾼다.
- count: 문자열(str)에서 지정된 문자열을 찾아서 바꾸는 횟수
- 만약 횟수를 지정하지 않으면 문자열 전체에서 찾아 바꾼다.
str.replace(old, new[, count])
str_a = 'Python is fast. Python is friendly. Python is open.'
# Python을 IPython으로 변경
print(str_a.replace('Python', 'IPython'))
# IPython is fast. IPython is friendly. IPython is open.
# 특정 문자 삭제햐기
str_b = '[Python][is][fast]'
str_b1 = str_b.replace('[', '') # 문자열에서 '['를 제거
str_b2 = str_b1.replace(']', ' ') # 결과 문자열에서 다시 ']'를 제거
print(str_b) # [Python][is][fast]
print(str_b1) # Python]is]fast]
python(str_b2) # Python is fast
728x90
'Python' 카테고리의 다른 글
[Python] 함수 (0) | 2024.01.10 |
---|---|
[Python] 리스트 함수 (0) | 2024.01.10 |
[Python] 튜플(vs 리스트) (4) | 2024.01.09 |
[Python] 리스트 (0) | 2024.01.09 |
[Pandas] 데이터 통합하기 (2) | 2024.01.08 |