1. 程式人生 > >Python資料結構與演算法(三)

Python資料結構與演算法(三)

上一章我們看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 ...  資料元素之間不是獨立的,存在特定的關係,這些關係便是結構。資料結構指資料物件中資料元素之間的關係。