티스토리 뷰

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