Intro

특정 문장에서 특정 글자의 위치를 반환해주는 find 에 대해 설명하겠습니다.
find는 문장에서 특정 패턴의 글자 위치를 찾아줄 수 있으며, 웹 크롤링(스크래핑)에서 re 라이브러리와 함께 특히 많이 사용될 것입니다.

find

시작하기

find 메서드는 특별한 설치가 필요하지 않은, 파이썬 기본 내장 메서드입니다.

사용법

1
2
3
4
5
6
string.find("찾을 문자열")

# >>> 찾을 문자열이 텍스트 내 몇 번째에 위치해있는지 알 수 있습니다.
# >>> 반환되는 순서는 0부터 시작합니다.
# >>> 반환할 값이 없는 경우(문자열이 텍스트에 없는 경우) -1을 반환합니다.
# >>> 찾는 문자열이 텍스트 내에 여러 개 있는 경우, 가장 첫 번째로 만나는 경우를 반환합니다.

예시

예시로 김춘수님의 “꽃” 이라는 시에서 단어를 찾아보도록 하겠습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
text = '''
꽃
김춘수

내가 그의 이름을 불러주기 전에는
그는 다만
하나의 몸짓에 지나지 않았다.

내가 그의 이름을 불러주었을 때,
그는 나에게로 와서
꽃이 되었다.

내가 그의 이름을 불러준 것처럼
나의 이 빛깔과 향기에 알맞는
누가 나의 이름을 불러다오.
그에게로 가서 나도
그의 꽃이 되고 싶다.

우리들은 모두
무엇이 되고 싶다.
너는 나에게 나는 너에게
잊혀지지 않는 하나의 눈짓이 되고 싶다.
'''

text.find("나")
# >>> 34
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
text_list = text.split('\n')

for sen in text_list:
    print(sen.find("나"))

# >>> -1
# >>> -1
# >>> -1
# >>> -1
# >>> -1
# >>> -1
# >>>  1
# >>> -1
# >>> -1
# >>>  3
# >>> -1
# >>> -1
# >>> -1
# >>>  0
# >>>  3
# >>>  8
# >>> -1
# >>> -1
# >>> -1
# >>> -1
# >>>  3
# >>>  9
# >>> -1

Reference

https://pythonbasics.org/string-find/
https://dpdpwl.tistory.com/119