Pythonの文字列操作で%演算子と+演算子の速度比較

Pythonでは、文字列の編集で%でのフォーマットが行えるが、ひょっとして%だと遅いんじゃないか、と思い測定した。

ソース

import time
start = time.time()

print("no.1--")
a = ''
for i in range(50000):
	b = '123'
	c = '456'
	a = a + 'zabc'+ b +'def'+ c +'ghi'

elapsed_time = time.time() - start

print(len(a))
print(elapsed_time)


start = time.time()

print("no.2--")
a = ''
for i in range(50000):
	b = '123'
	c = '456'
	a = 'z%sabc%sdef%sghi' % (a, b, c)

elapsed_time = time.time() - start

print(len(a))
print(elapsed_time)

解説

適当な文字列の間に、適当な文字列変数を編集するという操作を5万回行う。

変数aについては、再帰的に編集しているため、最終結果はすごく長い文字列(80万文字)となる。

環境

  • MacBook Pro (Retina, 13-inch, Late 2013) 2.6 GHz Intel Core i5 16GB RAM
  • OSX Yosemite 10.10
  • Python 3.3.3

結果

no.1

800000

1.7229290008544922

no.2

800000

1.919692039489746

これだけ回数の繰り返し処理で、0.2秒程度の差なので、ほとんど変わらないと言える。

結論

処理速度にほとんど差がないということは、%演算子の方が最終結果を予測しやすい分、%の方がコーディング的には良いと思う。

最終更新:2014/11/03 18:56
  • このエントリーをはてなブックマークに追加
  • Clip to Evernote
  • Share on Tumblr
  • Delicious

この記事に含まれるキーワード:


サイト内検索

このサイトについて

このサイトは、開発に役立つメモを公開しています。
詳しくは、こちら=>

このサイトのRSSはこちら=>

Twitter

楽天