Python資料結構學習筆記(三)

2022-06-27 15:12:12 字數 392 閱讀 5855

python在儲存字串的時候如何節省記憶體

採用不同編碼,那麼底層結構體例項額外的部分也會占用不同大小的記憶體。

字串所佔位元組數=額外的部分 + 字元個數 * 單個字元所佔的位元組。

python為什麼不用utf-8儲存字串

當乙個字串使用utf-8編碼儲存時,根據它所表示的字元,每個字元根據自身選擇乙個合適的編碼。(所以每個字元的位元組長度可能不同,就無法按照索引瞬間定位)

python在建立字串的時候,會先掃瞄。(看用哪個編碼儲存)

而字串得所有字元只能有乙個編碼,為了保證索引查詢的時候,時間複雜度為o(1),這是python的設計策略。(python的索引是基於字元)

《大話資料結構》學習筆記(三)

1 線性表 有限序列 前驅 後繼 空表 位序 2 線性表操作 重置為空表 位序得到元素 查詢元素 線性表長度 插入和刪除元素 其他操作可由基本操作組合而成 3 線性表儲存 順序儲存 起始位置 最大容量 當前長度 陣列長度 位址 4 loc ai loc a1 i 1 c 線性表順序儲存訪問時間效能o...

python資料結構學習筆記(二)

上次文章中提到幾個習題,這裡解決一下 r 6.3 實現乙個函式transfer s,t 將棧s中所有元素倒置放入t。def transfer s,t while not s.is empty t.push s.pop 還有其他解法,比較簡單。c 6.16 修改棧的實現方法,加入乙個引數maxlen,...

Python資料結構學習筆記(二)

python列表的底層分析 列表的內部結構 typedef struct pylistobject 列表有容量的概念,可以動態新增元素。但如果滿了,就得申請乙個更長的陣列。擴容 列表所佔記憶體大小計算 pyobject var head 24位元組 ob item 二級指標,8位元組 allocat...