このようなものを本当に最適化したい場合は、python ではなく C を使用してください。
cython を試してみてください。これは Python 構文とほぼ同じですが、C と同じくらい高速です。
ここにあなたが時間を計ることができるいくつかのものがあります:
import array
buf=array.array('c')
input=" a bc "
space=False
for c in input:
if not space or not c == ' ': buf.append(c)
space = (c == ' ')
buf.tostring()
また、使用してみてくださいcStringIO
:
import cStringIO
buf=cStringIO.StringIO()
input=" a bc "
space=False
for c in input:
if not space or not c == ' ': buf.write(c)
space = (c == ' ')
buf.getvalue()
しかし、繰り返しになりますが、そのようなことを本当に高速にしたい場合は、Python で実行しないでください。を使用しcython
ます。ここで示した 2 つのアプローチは、Python インタープリターにより多くの作業を行うため、処理が遅くなる可能性があります。これらのことを高速にしたい場合は、Pythonでできるだけ少ないことを行います。ループはfor c in input
、上記のアプローチのすべての理論上のパフォーマンスをすでに殺してしまう可能性があります。