算法与数据结构(part2)--Python内置类型性能分析
生活随笔
收集整理的這篇文章主要介紹了
算法与数据结构(part2)--Python内置类型性能分析
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
學習筆記,僅供參考
文章目錄
- 算法與數據結構--基于python
- Python內置類型性能分析
- timeit模塊
- 計時器類timeit.Timer
- 計時器類下的timeit.Timer.timeit方法
- 舉個例子
- list內置操作的時間復雜度
- dict內置操作的時間復雜度
算法與數據結構–基于python
Python內置類型性能分析
timeit模塊
該模塊可以用來測試一段Python代碼的執行速度,該模塊定義了三個函數(timeit, repeat, default_timer)和一個公共類(timeit.Timer類)。
計時器類timeit.Timer
Timer是測量小段代碼執行速度的類,我們可以用如下代碼創建Timer對象:
import timeit timeit.Timer(stmt='pass', setup='pass', timer=<timer function>)- 參數解釋
| stmt | 測試的代碼語句,也可以傳方法名 |
| setup | 運行語句時需要的設置,例如為了執行time.time()要引入time包 |
| timer | 是一個定時器函數,與平臺有關,不需要處理 |
- 注意事項
stmt和setup可能包含多個語句,它們需要用;換行,但是它不能包含多行字符串。
計時器類下的timeit.Timer.timeit方法
語法:
timeit.Timer.timeit(number=1000000) #number參數是測試代碼時的測試次數,默認為1000000次該方法返回執行代碼的平均耗時,一個float類型的秒數。
舉個例子
輸入:
def test1():l = []for i in range(3000):l.append(i)def test2():l = []for i in range(3000):l.insert(0, i)def test3():l = [i for i in range(3000)]def test4():l = list(range(3000))def test5():l = []for i in range(3000):l.extend([i])def test6():l = []for i in range(3000):l = l + [i]def test7():l = []for i in range(3000):l += [i]from timeit import Timerprint('開始測試') t1 = Timer("test1()", "from __main__ import test1") print("append:\t\t\t", t1.timeit(number=1000), "秒") t2 = Timer("test2()", "from __main__ import test2") print("insert:\t\t", t2.timeit(number=1000), "秒") t3 = Timer("test3()", "from __main__ import test3") print("推倒:\t\t", t3.timeit(number=1000), "秒") t4 = Timer("test4()", "from __main__ import test4") print("list:\t\t", t4.timeit(number=1000), "秒") t5 = Timer("test5()", "from __main__ import test5") print("extend:\t\t", t5.timeit(number=1000), "秒") t6 = Timer("test6()", "from __main__ import test6") print("+:\t\t", t6.timeit(number=1000), "秒") t7 = Timer("test7()", "from __main__ import test7") print("+=:\t\t", t7.timeit(number=1000), "秒") print('結束測試')輸出:
開始測試 append: 1.1612458527893832 秒 insert: 9.692673133243222 秒 推倒: 0.43955184525272273 秒 list: 0.20597684730072885 秒 extend: 1.714901670148274 秒 +: 60.014670117555504 秒 +=: 1.030209997337593 秒 結束測試list內置操作的時間復雜度
dict內置操作的時間復雜度
總結
以上是生活随笔為你收集整理的算法与数据结构(part2)--Python内置类型性能分析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 椭圆形有几条对称轴
- 下一篇: 算法与数据结构(part3)--数据结构