这两项操作中的哪一项应该更快? 我想要做的就是检查一个字符串是否在另一个字符串中。我们将忽略case,string-parts,whitespaces等等。
我假设第一个,因为它只检查存在,如果我是对的,而后者也检查位置。 这两个操作无论如何都是搜索字符串的最佳标准方法吗?
string = "my foo is your bar"
if "foo" in string:
# do important things
if string.find("foo") > -1:
#do much more important stuff
答案 0 :(得分:1)
你可以尝试python测试,看看:
from timeit import timeit
import re
def find(string, text):
if string.find(text) > -1:
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("best_find(string, text)", "from __main__ import best_find; string='lookforme'; text='look'")
结果:
0.441393852234
0.251421928406
从here回答。如您所见,“in”是更好的选项,以防您想要优化代码。