python原始碼剖析 讀書筆記

2022-08-29 11:54:09 字數 490 閱讀 2409

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...