Python內建資料結構和演算法 學習筆記

2021-10-02 17:18:21 字數 728 閱讀 7412

注:有空看看原始碼實現原理

nametuple()(建立命名元組子類的工廠函式)counter字典的子類,提供了可雜湊物件的計數功能ordereddict字典的子類,儲存了他們被新增的順序defaultdict字典的子類,提供了乙個工廠函式,為字典查詢提供乙個預設值

更多參考:python內建模組

dict底層使用了雜湊表

為了支援快速查詢使用雜湊表作為底層

雜湊表平均查詢時間複雜度o(1)

cpython直譯器使用二次探查解決雜湊衝突問題

解決雜湊衝突

雜湊擴容:hashmap的初始值是16(1,<<4),負載因子0.75(聽說這個值是經過大量實踐算出來的,這個值設定最合理),初始值16指的是陣列的長度(1<<4是2的4次方,這樣寫計算機執行更快),當陣列的容量達到12(16*0.75)時,這時開始擴容,擴容為32(1<<5即2的5次方),每次擴容按照2的倍數遞增,擴容是為了減少hash碰撞,讓鍊錶的資料更少(最好鍊錶上就乙個資料,即為陣列的下標資料)

都是線性結構、支援下標訪問

list是可變物件,tuple是儲存的引用不可變,比如tuple中包容可變物件,如list,函式對list修改了,內容是會改變的

list沒有辦法作為字典的key,tuple可以(可變物件不可hash),因為list有可能因為新增新的元素而導致記憶體位址的更換

python內建資料結構 Python內建資料結構

分類 數值型int float complex bool 序列物件 list string tuple 鍵值對set集合 dict字典 數值型int python3中的int都是長整型,沒有大小限制,但受限於記憶體區域的大小 float 浮點型,由整數部分和小數部分組成。complex 複數,由實數...

python內建資料結構

數列物件 鍵值對 型別轉換 built in int 取整數部分 整除且向下取整 min 取最小值 max 取最大值 pow x,y 等價於x y math.sqrt 開平方 進製函式,返回值是字串 math.pi math.e 自如常數 count value 時間複雜度 len 不產生新列表,就...

Python內建資料結構

分類 數字處理函式 進製函式,返回字串 型別判斷 列表索引訪問 列表查詢 列表元素修改 列表增加 插入元素 列表尾部追加元素,返回none 即不產生新列表,就地修改 時間複雜度為o 1 追加元素全部輸出為乙個整體 insert index,object 在指定索引位置插入元素object,返回non...