仰々しいタイトルだけど、よくある話。 「文字列の結合はjoin()を使おう」で分かる人は、これを読んでも新たに得ることはないと思う。 結論から言うと、join()を使えば例によってPyPyの方が断然速いのでご心配なく。 実験環境:Win7, C2D P8400(2.26GHz), RAM 4GB Problem 40 数列 01234567891011121314... の、第 1, 10, 100, 1000, 10000, 100000, 1000000 項の総乗を求める問題(ただし第 0 項から始める)。 まずは何も考えずに次のようなコードを書いた。 digits = '0' i = 0 while len(digits) < 1000001: i += 1 digits += str(i) product = 1 for j in [10**i for i in range(7)]