학습내용
문자열 관련 함수
문자열 자료형은 함수를 가지고 있으며, 이 함수를 문자열 내장 함수라 한다. 내장 함수를 사용하려면 문자열 변수 이름 뒤에 온점(.)을 붙인 뒤 함수를 써주면 된다.
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의 위치.
'파이썬 > Basics(기초)' 카테고리의 다른 글
[Python] 6. 파이썬 리스트 인덱싱, 슬라이싱, 연산 (0) | 2021.09.25 |
---|---|
[Python] 5. 파이썬 자료구조 기초 (0) | 2021.09.23 |
[Python] 3. 파이썬 문자열 포맷팅, f문자열 포맷팅 (0) | 2021.09.22 |
[Python] 2. 파이썬 문자열 연산, 인덱싱, 슬라이싱 (0) | 2021.09.22 |
[Python] 1. 파이썬 자료형(정수형, 실수형, 연산자, 문자열) (0) | 2021.09.21 |
댓글