jerkzhang
Python有两种方法判断一个字符串中是否存在某子串。
方法1:子串 in 字符串
>>> if "abc" in "123abc": ... print 'yes' yes
方法2:字符串.find(子串) > -1
>>> if "123abc".find( "abc" ) > -1: ... print 'yes' yes
以上两种方法都很常用,而方法1和方法2谁的速度更快,更推荐哪一种写法呢?
结论:推荐方法1,不仅速度翻倍,而且表达性更强。
python判断字符串是否含有某子串的两种方法的速度对比记录:
>>> import time
>>> def a():
... t1 = time.time()
... for i in xrange(100000):
... c = '89' in str(i)
... t2 = time.time()
... for i in xrange(100000):
... c = str(i).find('89') > -1
... t3 = time.time()
... print t2-t1, t3-t2
... print (t2-t1)/100000, (t3-t2)/100000
...
>>> a()
0.0287640094757 0.0479180812836
2.87640094757e-07 4.79180812836e-07
>>> a()
0.0289330482483 0.0468580722809
2.89330482483e-07 4.68580722809e-07
>>> a()
0.0284249782562 0.051322221756
2.84249782562e-07 5.1322221756e-07
经过对比就可以看出“子串 in 字符串”的写法速度更快,而且表达性更强。