Pythonの文字列連結の実行速度
表題の文字列連結の実行速度についてですが、以下の2つの処理ではかなり実行速度が違います。
(1) 低速
data = [0x40 for i in range(100000)] s = reduce(lambda a, b: a + b, map(lambda c: chr(c), data))
(2) 高速
data = [0x40 for i in range(100000)] s = ''.join(map(lambda c: chr(c), data))
今まではreduceは結構高速に処理できる。。。と思っていたんですが、
そうでもないという結果にすこし戸惑いぎみです。
reduce()の使いどころを判断する基準をどうしたものか。。
文字列を連結するときには、reduce()ではなくてjoin()を使うということでいいものか。。
悩みます。
ちなみに、Googleで検索したところ、処理速度の差を調べた以下のようなサイトがありました。
Efficient String Concatenation in Python
http://www.skymind.com/~ocrow/python_string/