jerkzhang,stay hungry, stay foolish
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 字符串”的写法速度更快,而且表达性更强。