티스토리 뷰
0. 포스팅 작성 이유
파이썬에서 "hello world"라는 문자열에서 특정 문자 "w" 존재 여부를 확인하려고 할 때 find() 메서드와 in 연산자를 모두 사용할 수 있습니다.
그렇다면 동일한 기능을 수행하는 메서드와 연산자가 모두 존재하는 이유가 무엇일까? 무슨 차이가 있어서 2개가 모두 존재하는 것일까, 찾아보았습니다.
1. find() 메서드와 in 연산자 반환값
종류 | 반환값 |
find( ) | 문자가 존재하면 해당 문자의 인덱스 / 없으면 -1 |
in | 문자가 존재하면 True / 없으면 False |
find( )는 특정 문자의 인덱스 값이 필요할 때, in 연산자는 단순히 특정 문자가 존재하는지만 확인할 때 사용하기 적합합니다. 물론 특정 문자의 존재 여부도 find( )로 파악할 수 있지만, in 연산자가 더욱 빠른 연산 속도를 가지기 때문에 in 연산자를 사용하길 추천합니다.
2. find( ) 메서드와 in 연산자 연산 속도
import timeit
def use_find() :
s = '1' * 10000 + 'A'
return s.find('A')
def use_in() :
s = '1' * 10000 + 'A'
return 'A' in s
print(timeit.timeit(stmt = use_find))
print(timeit.timeit(stmt = use_in))
위에가 find( ) 메서드 사용 시 연산 속도이고, 아래가 in 연산자 사용 시 연산 속도입니다.
in 연산자의 연산 속도가 더 빠른 걸 알 수 있습니다.
728x90
'코딩 테스트' 카테고리의 다른 글
[이것이 코딩 테스트다] 실전 문제 5-4 미로 탈출 (0) | 2023.05.20 |
---|---|
[이것이 코딩 테스트다] 실전 문제 4-3 게임 개발 (0) | 2023.05.09 |
[이것이 코딩 테스트다] 예제 4-1 상하좌우 (0) | 2023.05.01 |
[파이썬] 특정 알파벳의 순서 찾기 (ord 함수 사용) (0) | 2022.03.08 |