Python資料結構與演算法(三)
阿新 • • 發佈:2018-12-10
上一章我們看Python內建的模組可以測試程式碼的時間,有的程式碼執行時間短有的執行時間長,就是說效率不一樣。
如果上面不明顯的話,大家看下面兩個方法。append() 和 insert(0)
import timeit def t6(): li = [] for i in range(10000): li.append(i) def t7(): li = [] for i in range(10000): li.insert(0, i) timer6 = timeit.Timer("t6()", "from __main__ import t6") print("append", timer6.timeit(1000)) timer7 = timeit.Timer("t7()", "from __main__ import t7") print("insert(0)", timer7.timeit(1000))
執行結果。
append 1.1817268750736
insert(0) 25.375035200030037
我們看上面兩個方法的概念,是append是向列表後面新增元素,insert(0) 是向列表前面新增。可以看出從前面新增要不從後面新增花費的時間更多。
為什麼會有這樣的差別呢?
我們看一下Python中列表和字典不同,假設我們要從資料中找到小明和資料我們需要的時間怎麼樣的操作。
[{name: '小a},{name: '小b'},{name: '小c'}, {name: '小明'} ... n] , 我們需要遍歷這個列表然後才能知道那一條資料是小明。
{ '小a': {...}, '小b': {...}, '小c': {...},'小明': {...} ..... },如果在字典裡面去查詢我們就可以直接找到小明的資料。
資料結構的概念是:
資料是一個抽象的概念,將其進行分類後得到程式設計語言中的基本型別。如 int string float ... 資料元素之間不是獨立的,存在特定的關係,這些關係便是結構。資料結構指資料物件中資料元素之間的關係。