Python数据结构与算法(三)--数据结构的概念
上一章我們看Python內(nèi)置的模塊可以測(cè)試代碼的時(shí)間,有的代碼執(zhí)行時(shí)間短有的執(zhí)行時(shí)間長(zhǎng),就是說(shuō)效率不一樣。
如果上面不明顯的話,大家看下面兩個(gè)方法。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))執(zhí)行結(jié)果。
append 1.1817268750736 insert(0) 25.375035200030037我們看上面兩個(gè)方法的概念,是append是向列表后面添加元素,insert(0) 是向列表前面添加??梢钥闯鰪那懊嫣砑右粡暮竺嫣砑踊ㄙM(fèi)的時(shí)間更多。
為什么會(huì)有這樣的差別呢?
我們看一下Python中列表和字典不同,假設(shè)我們要從數(shù)據(jù)中找到小明和數(shù)據(jù)我們需要的時(shí)間怎么樣的操作。
[{name: '小a},{name: '小b'},{name: '小c'},?{name: '小明'} ... n] , 我們需要遍歷這個(gè)列表然后才能知道那一條數(shù)據(jù)是小明。
{ '小a': {...}, '小b': {...}, '小c': {...},'小明': {...} .....?},如果在字典里面去查找我們就可以直接找到小明的數(shù)據(jù)。
數(shù)據(jù)結(jié)構(gòu)的概念是:
數(shù)據(jù)是一個(gè)抽象的概念,將其進(jìn)行分類后得到程序設(shè)計(jì)語(yǔ)言中的基本類型。如 int string float ... ?數(shù)據(jù)元素之間不是獨(dú)立的,存在特定的關(guān)系,這些關(guān)系便是結(jié)構(gòu)。數(shù)據(jù)結(jié)構(gòu)指數(shù)據(jù)對(duì)象中數(shù)據(jù)元素之間的關(guān)系。
總結(jié)
以上是生活随笔為你收集整理的Python数据结构与算法(三)--数据结构的概念的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【学术相关】94年的博士后又拿到了这个金
- 下一篇: 如何用u盘装系统