StringIOの文字列の連結について(python2.6)
StringIOを読んでいるとわざわざ文字列連結のためにself.buflistというリストを用意して、joinして文字列を連結させています。ところが、こんなのself.bufと+演算子だけでできてしまいます。考えられるのは、リストを生成して、joinする方が速いということです。というわけで、時間を測ってみました。
import time s = 'hello' t = time.time() s3 = '' for i in range(0, 1000000): s3 += s t = time.time() - t print '%.3f[sec]' %(t) t = time.time() l = [] for i in range(0, 1000000): l.append(s) if l: s2 = ''.join(l) t = time.time() - t print '%.3f[sec]' %(t) assert(s2 == s3)
結果としては、少しだけjoinの方が速かったですが、気にするほどのことでもない気がします。
1.410[sec]# +演算子
1.393[sec]# join