python字符串处理简单优化

以前连接字符串喜欢用"%s%s"方式
发现效率很低 不过又有更好的方法了
 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import time
def main1():
st=time.clock()
s=""
for x in range(20000):
s="%s%s"%(s,x)
teststr=s
print "main1 len=%s time:%s"%(len(teststr),time.clock()-st)
def main2():
st=time.clock()
s=[]
for x in range(20000):
s.append("%s"%x)
teststr="".join(s)
print "main2 len=%s time:%s"%(len(teststr),time.clock()-st)
main1()
main2()



运行结果是
main1 len=88890 time:0.507007175493
main2 len=88890 time:0.0338646392209
差距大吧

用list之后join的性能是"%s%s"的好多倍
所以以后这样的应用全部改成用list

你可能感兴趣的:(python)