문자열(str)에서 특정 항목을 찾을 때 사용하는 여러 내장함수들


1. 찾으려는 문자(열) in 문자열 이름


in 을 사용하면 간편하다.
찾으려는 문자(열)이 대상 문자열에 있다면 True를, 없다면 False를 되돌려 준다.



1
2
3
4
a = "honeycello@gmail.com"

print("honeyce" in a)
print("hd" in a)

3번 줄 결과 : True
4번 줄 결과 : False




2. 문자열 이름.index(찾으려는 문자(열))

- 대상 문자열에서 찾으려는 문자(열)이 처음으로 나오는 위치를 결과로 되돌려 준다.
- 찾으려는 문자(열)이 존재하지 않으면, 오류가 발생한다.



1
2
3
4
a = '12341'

b = a.index("1")
print(b)

print(b) 결과는, a에서 처음 '1'이 등장하는 인덱스 번호인 0 이다.



1
2
3
4
a = '12341'

c = a.index("3")
print(c)

print(c) 결과는, a에서 처음 '3'이 등장하는 인덱스 번호인 2 이다.



1
2
3
4
a = 'honeycello@gmail.com'

d = a.index('gmail')
print(d)

print(c) 결과는, a에서 gmail의 g가 처음 등장하는 인덱스 번호인 11 이다.


찾으려는 문자(열)이 존재하지 않아 오류가 발생한 사례




3. 문자열 이름.find(찾으려는 문자(열))

- 대상 문자열에서 찾으려는 문자(열)이 처음으로 나오는 위치를 결과로 되돌려 준다.
- 찾으려는 문자(열)이 존재하지 않으면, -1을 결과로 되돌려 준다.


상황 : 이메일 주소 7개가 든 리스트 a에서 네이버 이메일만 따로 뽑아내려 한다.


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
# 이메일 7개가 든 리스트 a에서 naver 이메일만 골라내려 한다. 

a = ['honeycello@gmail.com', 'honeycello@naver.com', 'sjs@gmail.com', 
 'dreamcatcher@daum.net','dalhmin@naver.com', 'peace@sk.com', 'redperl@daum.net']

naver_list = [] 
i = 0 

for i in range(i, len(a)):
    if a[i].find('naver') != -1 :
        naver_list.append(a[i])
    i += 1
    
print(naver_list)

14번 줄 결과 :  ['honeycello@naver.com', 'dalhmin@naver.com']

.find() 함수는 찾으려는 문자열애 존재하지 않으면 -1을 뱉어내므로,
10번 줄에서
.find('naver') 결과가 -1이 아닌 것 즉, 'naver'를 포함하고 있는 것을 솎아낼 수 있다.


4. 문자열 이름.endswith(suffix, start, end)

.endswith는 문자열이 특정 접미사(suffix)로 끝나는지 알아볼 때 사용하며, 매개변수 3개를 갖는다.

suffix는 특정 접미사.
start는 시작점 인덱스, end는 끝점 인덱스다.

문자열이 검사하려는 접미사로 끝나면 True를 뱉는다. 그렇지 않을 경우엔 False를 뱉는다.



1
2
3
4
5
6
7
a = 'honeycello@gmail.com'

gmail_suffix = 'gmail.com'
naver_suffix = 'naver.com'

print(a.endswith(gmail_suffix))
print(a.endswith(naver_suffix))

6번 줄 실행 결과는 True,
7번 줄 실행 결과는 False.

2번에서 .find() 함수로 네이버 이메일을 찾았던 것처럼 .endswith()를 사용해서도 네이버 이메일들을 찾을 수 있다.



 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
a = ['honeycello@gmail.com', 'honeycello@naver.com', 'sjs@gmail.com', 
 'dreamcatcher@daum.net','dalhmin@naver.com', 'peace@sk.com', 'redperl@daum.net']

naver_list = []
i = 0 

for i in range(i, len(a)):
    if a[i].endswith('naver.com'):
        naver_list.append(a[i])
    i += 1

print(naver_list)

12번 줄 결과 : ['honeycello@naver.com', 'dalhmin@naver.com']