문자열(str)에서 특정 항목을 찾을 때 사용하는 여러 내장함수들
1. 찾으려는 문자(열) in 문자열 이름
in 을 사용하면 간편하다.
찾으려는 문자(열)이 대상 문자열에 있다면 True를, 없다면 False를 되돌려 준다.
3번 줄 결과 : True
4번 줄 결과 : False
2. 문자열 이름.index(찾으려는 문자(열))
- 대상 문자열에서 찾으려는 문자(열)이 처음으로 나오는 위치를 결과로 되돌려 준다.
- 찾으려는 문자(열)이 존재하지 않으면, 오류가 발생한다.
print(b) 결과는, a에서 처음 '1'이 등장하는 인덱스 번호인 0 이다.
print(c) 결과는, a에서 처음 '3'이 등장하는 인덱스 번호인 2 이다.
print(c) 결과는, a에서 gmail의 g가 처음 등장하는 인덱스 번호인 11 이다.
찾으려는 문자(열)이 존재하지 않아 오류가 발생한 사례
3. 문자열 이름.find(찾으려는 문자(열))
- 대상 문자열에서 찾으려는 문자(열)이 처음으로 나오는 위치를 결과로 되돌려 준다.
- 찾으려는 문자(열)이 존재하지 않으면, -1을 결과로 되돌려 준다.
상황 : 이메일 주소 7개가 든 리스트 a에서 네이버 이메일만 따로 뽑아내려 한다.
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를 뱉는다.
6번 줄 실행 결과는 True,
7번 줄 실행 결과는 False.
2번에서 .find() 함수로 네이버 이메일을 찾았던 것처럼 .endswith()를 사용해서도 네이버 이메일들을 찾을 수 있다.
12번 줄 결과 : ['honeycello@naver.com', 'dalhmin@naver.com']
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']
0 Comments
Post a Comment