從零開始學Python (20) — 時間量測與效率檢驗:你的時間也不是你的時間
Day 20 時間量測與效率檢驗:你的時間也不是你的時間
8 min readOct 5, 2020
註:本篇文章同步刊載於iT邦幫忙,為鐵人賽之系列文章。
https://ithelp.ithome.com.tw/articles/10247284
我們先來解一下昨天的練習吧!
>>> from datetime import date, datetime, time ,timedelta
>>> now = date(2020, 10, 1)
>>> mem = [date(2021,8,14), date(2021,2,14), date(2021,3,14), date(2020,10,3), d
ate(2021,11,3)]
>>> diff = sorted([d - now for d in mem]) # 你沒看錯,是可以排序的~
>>> diff
[datetime.timedelta(days=2), datetime.timedelta(days=136), datetime.timedelta(da
ys=164), datetime.timedelta(days=317), datetime.timedelta(days=398)]
>>> for d in diff:
... print(str(d)) # 這樣顯示也可以啦!但好像可以簡單一點XD
...
2 days, 0:00:00
136 days, 0:00:00
164 days, 0:00:00
317 days, 0:00:00
398 days, 0:00:00>>> days = [d.days for d in diff] # deltatime也可以單取其中的單位
>>>
>>> days
[2, 136, 164, 317, 398]
糟糕,這篇文貼出來的時間點第一個重要日子已經過了,
只好希望小亦有記得阿啾的生日了XD
上一篇我們提到了可以利用time.time()來計算,
但如果要取平均的話,可能要自己寫迴圏來處理,
但寫迴圏這件事情從根本上就有些破壞原本的結構,
那麼該怎麼作比較好呢?
我們可以利用timeit這個模組。
當我們想簡單計算某個指令的耗時的時候,
我們可以先用直接在命令提示字元裡下指令的方法,
比方說:
C:\Users\Desolve\utils>python -m timeit "'-'.join(str(n) for n in range(100))" # 今晚,我想來點字串組合套餐
10000 loops, best of 5: 23 usec per loop