본문 바로가기
파이썬/Basics(기초)

[Python] 4. 파이썬 문자열 함수 및 예제

by 쿠킷리스트 2021. 9. 22.

학습내용

문자열 관련 함수

 문자열 자료형은 함수를 가지고 있으며, 이 함수를 문자열 내장 함수라 한다. 내장 함수를 사용하려면 문자열 변수 이름 뒤에 온점(.)을 붙인 뒤 함수를 써주면 된다.

 

count  원하는 문자가 문자열 내에 몇개 들어갔는지 찾는 함수.
find  원하는 문자가 문자열 내에 몇번째에 있는지 찾는 함수.
index  원하는 문자가 문자열 내에 몇번째에 있는지 찾는 함수.
join  문자열 사이에 원하는 문자를 삽입하는 함수.
(l,r)strip  모든 문자열을 대문자, 소문자로 치환해주는 함수.
upper, lower  문자열 내의 공백을 지워주는 함수.
replace  문자열 내의 특정한 값을 다른 값으로 바꿔주는 함수.
split  특정한 기준으로 문자열을 나누어 주는 함수.
예제  count, find, index, upper, lower 예제.

count 함수

 

a = 'data'
a.count('a')
#2
  • count 함수는 문자열 내에 원하는 문자가 몇개가 들어가있는지 확인할 수 있다.

find 함수

 

a = "I have 7 books. The books title is data."
a.find('7')
#7
a.find('books')
#9
a.find('x')
#-1
a.find('B')
#-1
  • find 함수는 문자열 내에 원하는 문자가 몇 번째에 있는지를 나타낸다.
  • 단어 혹은 문장도 찾을 수 있으며 없는 문자를 찾을 경우 -1을 반환한다.
  • 대소문자를 구분하여 찾아야한다.
  • 대소문자 구분 없이 찾고싶다면 upper 혹은 lower 함수를 사용하여 변환 후 find 함수를 사용하면 된다.

index 함수

a = "I have 7 books. The books title is data."
a.index('7')
#7
a.index('books')
#9
a.index('x')
#Error
  • index 함수는 문자열 내에 원하는 문자가 몇 번째에 있는지를 나타낸다.
  • find 함수와 매우 유사하지만 없는 문자를 찾을 경우 Error가 발생한다.

join 함수

 

",".join('abcd')
#'a,b,c,d'
"y".join('abcd')
#'aybycyd'
"!".join('a,b,c,d')
#a!,!b!,!c!,!d

",".join(['a','b','c','d'])
#'a,b,c,d'
  • join 함수는 문자열 사이에 원하는 문자를 삽입한다.
  • 문자열뿐만 아니라 순서가 있는 자료형 리스트나 튜플에서도 사용할 수 있다.

upper, lower 함수

a = 'data'
b = 'DAta'
a.upper()
#'DATA'
b.lower()
#'data'
  • upper, lower 함수는 모든 문자열을 대문자, 소문자로 치환해주는 함수.
  • 데이터 형태를 모두 통일시킬 때 주로 사용.

lstrip, rstrip, strip 함수

 

a = '    data'
a.lstrip()
#'data'

b = 'data    '
b.rstrip()
#'data'

c = '   data.  '
c.strip()
#'data'
  • lstrip, rstrip, strip 함수는 공백을 지워주는 역할을 하는 함수이다.
  • 데이터 전처리 시 공백제거하는 용도로 사용되기도 한다.

replace 함수

 

a = "I have 7 books. The books title is data."
a.replace("books", "paper")
#'I have 7 paper. The paper title is data.'

b = "a%b%c%d%e%f"
b.replace("%","")
#'abcdef'
b.replace("%"," ")
#'a b c d e f'
  • replace 함수는 문자열 내의 특정한 값을 다른 값으로 바꿔주는 역할.
  • 매우 다양하게 활용이 가능하다.

split 함수

 

a = "I have 7 books"
a.split()
#['I', 'have', '7', 'books']

b ="""
I
have
7
books
"""
b.split()
#['I', 'have', '7', 'books']

c = "1:2:3:4"
c.split(":")
#['1', '2', '3', '4']
  • split 함수는 특정한 기준으로 문자열을 나누어 주는 역할을 한다.
  • a.split( )처럼 괄호 안에 값을 넣지 않으면, 구분할 수 있는 기준(공백, 스페이스, 탭, 엔터 등)으로 문자열을 나눈다.
  • 하지만 c.split(":")처럼 특정한 값이 있을 경우 괄호 안의 값을 구분자로 문자열을 나누어준다.
  • 나눈 값은 리스트에 하나씩 들어간다.
  • 텍스트 파일을 분석하기 전에 split 함수를 사용하여 리스트로 만들어 사용한다.
  • 분석이 완료된 이후 다시 텍스트로 전환하여 저장할 때는 join을 사용한다.

파이썬 문자열 함수 예제

 

1. 변수 s의 문장에 들어가는 모든 A,a의 개수를 찾아라.(대소문자 구분 없이 모든 A)

s = """
All samples shall be properly labeled in order to ensure that 
the results can be traced back to the location from which it was collected.
"""
b = s.upper()
print(b.count('A'))
print(b.count('a'.upper()))
#10

print(b.find('S'))
#5
  • 문장 내에 들어가는 모든 a를 찾기 위해 문장 전체를 대문자로 변경 후 'A'를 카운트. lower 함수도 사용할 수 있다.
  • count 함수 외에 find 혹은 index로 위치를 찾을 수도 있다.

2. 변수 a의 문장에서 두 번째 books의 위치를 찾아라.

a = "I have 7 books. The books title is data."
b = a.find('books')
print(b) #9
print(len('books')) #5
c = a[9+5:]
print(c) #. The books title is data.
d = c.find('books')
print(d) #6
print(b+5+d) # 20
  • 더 쉽게 찾을 수 있는 방법이 있겠으나 위에서 배운 내용을 토대로 풀어본다.
    • 첫번째 books의 위치를 찾는다.
    • 첫번째 books 뒤의 문장을 슬라이싱한다.
    • 두번째 books의 위치를 찾는다.
    • 첫번째 books의 위치 + books의 문자 길이 + 슬라이싱 된 문장의 books의 위치.

댓글