私は 'ポップ'の時間を計算したいと思います。ここにコードは です。空のリストからポップ
x=list(range(10000))
popz=timeit.Timer("x.pop(0)","from __main__ import x")
print (popz.timeit())
IndexError: pop from empty list
は、どのように私は、リストの先頭からポップの時間を得ることができます。
私は 'ポップ'の時間を計算したいと思います。ここにコードは です。空のリストからポップ
x=list(range(10000))
popz=timeit.Timer("x.pop(0)","from __main__ import x")
print (popz.timeit())
IndexError: pop from empty list
は、どのように私は、リストの先頭からポップの時間を得ることができます。
デフォルトでは、timeit
methodは100万回実行されます。しかし、あなたのリストは10000アイテムだけです。したがって、timeit
が実行されると、最初の10000
時間はうれしくポップしますが、10001
の繰り返しは失敗します。あなたは明示的に回数を設定することができます。
popz.timeit(n=10000)
けど...あなたは時間にしたいので、これはそれが.pop
にかかる時間は本当にトリッキーなタイミング状況ですが、あなたのリストのサイズは常に変化しているが。あなたが漸近的なパフォーマンスを探しているなら、おそらく.pop(0)
がO(N)の漸近的な性能を持っていることを検証できます。しかし、リストの作成に要する時間を、.pop
,またはと一緒に時間を計らなければならないので、具体的な時間は来るのが難しいでしょう。
たぶんuが(2つの変数の間の異なる使用しようとすることができますので、
>>> import timeit
>>> x=list(range(10000))
>>> timeit.timeit("x.pop(0)","from __main__ import x", number=len(x))
0.01635134604293853
ありがとう、それは動作します。 –
のように試してみてください...これらのどちらが理想的です...しかし、私はそれが時間非冪等の方法にしようとの問題だと思います日時)を指定します。
しかし、2番目の変数代入(「ポップ」の後)の時間に等しいエラーがあります。
import datetime
a = datetime.datetime.now()
# ...wait a while...
b = datetime.datetime.now()
print(b-a)
この場合、timedeltaの精度についてはわかりません。
ありがとう、この場合の正確さは、pc.cの作業負荷など、多くの問題に依存している可能性があります。 –
ありがとうございました! –