Python:字符串中的string.find(“foo”)vs“foo”。哪个更快?

时间:2014-03-05 12:11:11

标签: python string

这两项操作中的哪一项应该更快? 我想要做的就是检查一个字符串是否在另一个字符串中。我们将忽略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

1 个答案:

答案 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”是更好的选项,以防您想要优化代码。