1.多個str合併時不要用+號,應該用list的join函式, 詳見:
在這個實驗中,表明超過170個str合併時 join函式更佔優
2,list 的內部實現類似c++ stl中的vector, 當發生重新分配記憶體或者在list 首部插入資料時, list的效率最低
如果常常要在序列的兩端增刪元素,請使用deque這個資料結構,它是執行緒安全的
3.dict 和 set 的實現類似,都基於雜湊表(set可以想象成 鍵與值 一樣的雜湊表) 由於python內部大量使用dict 來對應 變數名和值,所以對鍵值為 str 型別的 key-value查詢有專門的優化(比較方式和省去了通用的錯誤處理 )
4.對於有些函式其引數直接傳乙個生成器進去就可以了,不必要轉成list,比如
somemethod(a for a in as),不必somemethod([a for a in as])
加了方括號反而多此一舉
再轉一篇分析資料結構時間複雜度的文章:
《Python原始碼剖析》讀書筆記 總
原來在大三的時候就已經認識了python,一直以來都被他的簡易性和開發效率所折服,可惜一直以來都沒有機會在工作中用到它,不過現在我自己終於也是採用python進行工作,一直以來的願望終於都實現了,不過python內部到底是怎麼工作的呢?如何能夠實現這麼動態的功能呢?要了解具體的實現,就需要去看pyt...
STL原始碼剖析讀書筆記
一.stl提供六大元件,彼此可以組合套用。1.容器 containers 各種儲存結構,如vector list deque set map,用來存放資料。2.演算法 algorithme 各種常用演算法,如sort search copy erase等。3.迭代器 iterators 扮演容器與演...
《STL原始碼剖析》讀書筆記 三
hashtable 非標準 二叉搜尋樹 任何節點最多只能允許兩個子節點 平衡二叉樹 確保整棵樹的深度為o logn 左右子樹的高度最多差1 setmap multiset 特性與用法與set完全相同,唯一的差別在於它允許鍵值重複,插入的時候用的是rb tree的insert equal 而不是ins...