LoginSignup
2
1

More than 5 years have passed since last update.

Array の append/pop/insert(0,x)/pop(0) に要する時間(python)

Last updated at Posted at 2018-02-05

Array の push/pop/unshift/shift に要する時間(ruby) という記事を書いたので、同じことを python でも試してみた。

まずはソースコード

こんな感じの

python3.6
import time

def tick(t):
  start = time.time()
  t()
  return (time.time() - start)*1000

r=[0,0,0]
for x in range(10):
  a=[0]*100_000_000
  for ix in range(3):
    r[ix] += tick( lambda:a.append(0) ) # この行の append(0) を「insert(0,0)」「pop()」「pop(0)」に変更する

print( "".join( [ "%.5f|" % (r[ix]/10) for ix in range(3) ] ) )

ソースコードで測ってみた。

測定結果

結果は下表の通り:

1回目 2回目 3回目
append 0.01278 0.00091 0.00041
insert(0,0) 102.11890 104.82631 105.90937
pop 0.00412 0.00043 0.00041
pop(0) 94.54970 96.57269 97.45097

append は初回がちょっと遅いけど、基本的に速い。
insert(0,0) は、遅い。2回目も3回目も同じように遅い。
pop も初回がちょっと遅いけど、基本的に速い。
pop(0) は、遅い。2回目も3回目も同じように遅い。

というわけで、ruby とは異なり、分かり易い結果になった。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1