質問:どちらが速いかは、timeit
を使用すると最もよく答えられます。
from timeit import timeit
import re
def find(string, text):
if string.find(text) > -1:
pass
def re_find(string, text):
if re.match(text, string):
pass
def best_find(string, text):
if text in string:
pass
print timeit("find(string, text)", "from __main__ import find; string='lookforme'; text='look'")
print timeit("re_find(string, text)", "from __main__ import re_find; string='lookforme'; text='look'")
print timeit("best_find(string, text)", "from __main__ import best_find; string='lookforme'; text='look'")
出力は次のようになります。読みやすくなりますので、それは速くもあるので
0.441393852234
2.12302494049
0.251421928406
はそうではないだけで、あなたはin
演算子を使用する必要があります。
1つのみのために、余分なオーバーヘッドのために、正規表現が遅くなることは確かです。 –
2つの機能が異なるため、2つを比較する際には注意が必要です。 Findは文字列全体を検索し、一致は先頭にのみ一致します(つまり、データに応じて早く終了することができます)。あなたはリンゴとオレンジを比較しています。 –