Python

문자열 함수 메서드 정리

jsys 2024. 1. 6. 00:29

 

* 문자열을 처리하기 위해서는 문자열 분리, 불필요한 문자열 삭제, 문자열 연결 등을 할 수 있어야 함.

 

 

1. split() : 문자열 분리

 

- 문자열을 부분 문자열로 나누고 싶을 때 이용하는 메서드

str.split([sep])  # sep : 구분자(separator), 대괄호([])는 생략 가능

 

 

- 예시

"에스프레소,아메리카노,카페라테,카푸치노".split(',')  # 콤마를 기준으로 단어 분리
"에스프레소 아메리카노 카페라테 카푸치노".split(' ')  # 공백을 기준으로 단어 분리
"에스프레소.아메리카노.카페라테.카푸치노".split('.')  # .을 기준으로 단어 분리

# ['에스프레소', '아메리카노', '카페라테', '카푸치노']
# maxsplit을 지정해 문자열 분리

phone_number = "+82-01-2345-6789"
phone_number.split('-',maxsplit=2)  # 앞에서부터 두 개의 '-'까지만 문자열을 나눔

# ['+82', '01', '2345-6789']

 

 

 

 

 

2. strip() : 필요없는 문자열 삭제

 

- 앞뒤 공백 혹은 개행문자와 같이 불필요한 부분을 지워야 할 때 사용

- 문자열(str)의 앞과 뒤에서 시작해서 지정한 문자(chars) 외의 다른 문자를 만날 때까지 지정한 문자(chars)를 모두 삭제한 문자열 반환

- 지정한 문자와 일치하는 것이 없으면 문자열을 그대로 반환

- 지정한 문자 없이 str.strip() 수행 시 문자열 앞 뒤의 모든 공백과 개행문자를 삭제한 후 문자열 반환

str.strip([chars])  # chars: 문자

 

 

- 예시

tempText = ' Python '
tempText.strip()

#'Python'
tempText = 'aaaaabbPythonbbaaaaaa'
result = tempText.strip('a')
result.strip('b')

# 'Python'

tempText.strip('ab') # 이렇게 해도 결과는 같다(지우고자 하는 문자 모두 지정 후 한 번에 제거)

# 'Python'
# 지우고자 하는 문자를 여러 개 지정할 때 순서는 상관 없음('ba'도 가능)
tempText = '\n Python \n\n'
tempText.strip(' \n')

# 'Python'
# 공백과 개행문자(\n)를 지우는 방법(역시나 공백과 개행문자 순서는 상관 없다)

 

 

 

 

 

3. join() : 문자열 연결

 

- 리스트의 모든 항목을 하나의 문자열로 만들 때 사용하는 메서드

- 문자열을 항목으로 갖는 시퀀스의 항목 사이에 구분자 문자열을 모두 넣은 후 문자열로 반환한다.

  + 시퀀스 : 리스트나 튜플 같이 여러 데이터를 순서대로 담고 있는 나열형 데이터

str.join(seq)  # seq : 시퀀스

 

 

- 예시

address_list = ['서울시', '서초구', '반포대로', '201(반포동)']

# 리스트의 각 값을 모두 연결해서 하나의 텍스트로
a = " "  # 구분자 문자열을 공백으로 연결
a.join(address_list) #a에 지정하지 않고 " ".join(address_list) 해도 됨


# '서울시 서초구 반포대로 201(반포동)'

 

 

  ** 리스트가 아닌 문자열과 문자열은 더하기 연산자(+)로 연결하면 됨!

name1 = '철수'
name2 = '영미'

hello = '님, 주소와 전화 번호를 입력해 주세요'

print(name1+hello)
print(name2+hello)

# 철수님, 주소와 전화 번호를 입력해 주세요
# 영미님, 주소와 전화 번호를 입력해 주세요

 

 

 

 

4. find() : 문자열 찾기

 

- 문자열의 위치값을 반환

str.find(search_str)  # search_str : 검색 문자열

 

 

- 예시

str_f = 'Python code.'
print("찾는 문자열의 위치:", str_f.find('Python'))
print("찾는 문자열의 위치:", str_f.find('code'))
print("찾는 문자열의 위치:", str_f.find('n'))
print("찾는 문자열의 위치:", str_f.find('java')) 

# 찾는 문자열의 위치: 0
# 찾는 문자열의 위치: 7
# 찾는 문자열의 위치: 5
# 찾는 문자열의 위치: -1   # -1: 해당되는 문자 없음

  ** 여기서 단어(Python, code)는 문자열 시작 위치를 반환한다. (P : 0번째, c : 7번째)

 

 

 

 

5. count() : 찾고자 하는 문자열의 횟수 반환

 

- 만약 찾을 문자열이 없으면 0으로 반환

- start와 end로 검색 범위 지정 가능

str.count(search_str)
str.count(search_str, start)
str.count(search_str, start, end)

 

 

- 예시

str_c = "Python is powerful. Python is easy to learn. Python is open"
print("Python의 갯수는?", str_c.count("Python"))
print("powerful의 갯수는?", str_c.count("powerful"))
print("Java의 갯수는?", str_c.count("Java"))


# Python의 갯수는? 3
# powerful의 갯수는? 1
# Java의 갯수는? 0

 

 

 

 

6. startswith(), endswith() : 각 문자열이 지정된 문자열로 시작하는지 또는 끝나는지 검사할 때 사용

 

- 지정된 문자열로 시작되면 True를, 그렇지 않으면 False를 반환한다.

- start와 end로 범위 지정할 수 있음

str.startswith(prefix)
str.startswith(prefix, start)
str.startswith(prefix, start, end)
str.endswith(suffix)
str.endswith(suffix, start)
str.endswith(suffix, start, end)

 

 

- 예시

str_c = "Python is powerful. Python is easy to learn. Python is open."
print("Python으로 시작?", str_c.startswith('Python'))
print("is으로 시작?", str_c.startswith('is'))
print(".으로 끝?", str_c.endswith('.'))
print("!으로 끝?", str_c.endswith('!'))


# Python으로 시작? True
# is으로 시작? False
# .으로 끝? True
# !으로 끝? False

 

 

 

 

 

7. replace() : 문자열 바꾸기

 

- 문자열에서 지정한 문자열을 찾아서 바꾸는 메서드

str.replace(old, new[, count])

# 지정한 문자열(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(']', ' ')  # 결과 문자열에서 다시 ']' 제거
result = str_b2.rstrip() # rstrip : 문장 뒤 공백을 지우기 위해 사용
print(result)


# Python is fast

 

 

 

 

 

'Python' 카테고리의 다른 글

딕셔너리  (0) 2024.01.06
리스트 함수 메서드 정리  (0) 2024.01.06
리스트, 튜플의 유사한 점 및 차이점  (0) 2024.01.05
파이썬 변수명 규칙  (0) 2024.01.05
논리 연산자, 비교 연산자  (0) 2024.01.05