2010年11月4日木曜日

Pythonの文字列結合のパフォーマンス

Python2.5.4で、文字列結合の速度についていろいろ試してみました。

あらかじめb='b'、c='c'となっている場合:
a='b'+'c'
a=b+c

これはどちらも、ほぼ同じ時間でした。
変数に入れているほうが、オブジェクトの生成がなくて速そうですが、意外にもそうではありませんでした。

a=''.join(['b','c'])
a=''.join(('b','c'))

当然、下が速いです。リスト内包表記を使わないなら、タプルを使ったほうが良いですね。


あらかじめ_join=''.joinとなっている場合:
a=''.join(('b','c'))
a=_join(('b','c'))

これも、下が速いです。3回以上''.join(iter)を使うようでしたら、変数に入れておいたほうが速かったです。

あらかじめ_join=''.joinとなっている場合:
a='b'+'c'
a=_join(('b','c'))

これは、上のほうが速かったです。文字列が長かったり、何度も結合する場合は、_join(iter)のほうが速いはずなのですが、それは調査中です。

0 件のコメント:

コメントを投稿