1. 程式人生 > >【Python教程-廖雪峰】使用dict和set

【Python教程-廖雪峰】使用dict和set

  文章來自:

僅供交流學習,歡迎指導。

-----------------------------------------------------------------

一、

和list比較,dict有以下幾個特點:

  1. 查詢和插入的速度極快,不會隨著key的增加而變慢;
  2. 需要佔用大量的記憶體,記憶體浪費多。

而list相反:

  1. 查詢和插入的時間隨著元素的增加而增加;
  2. 佔用空間小,浪費記憶體很少。

所以,dict是用空間來換取時間的一種方法。

推測安卓App開發者的程式碼質量不如蘋果 IOS 的開發者,所以安卓App在執行時為了提高自己的響應速度,會採用這種“空間換取時間”的方法,所以安卓手機常常卡頓,執行寥寥幾個App記憶體就爆炸。

相反的是,蘋果公司提高了App上架標準,要求開發者大量使用節省記憶體的程式碼,例如大量使用指標以減少記憶體的複製佔用,嚴格禁止各種時空轉換的程式碼,所以 IOS 才異常流暢。

-----------------------------------------------------------------

之前學 C++ 時,聽說Google Chrome核心就是用空間換取時間,執行時記憶體特別大,但瀏覽器響應速度特別快,一直不理解,今天看到 python 裡的 dict 和 list 之間的優缺點,立刻就明白了。估計 C++ 內部也存在這種時空轉換的關係。

二、

這個通過key計算位置的演算法稱為雜湊演算法(Hash)

所謂Hash演算法,猜測應該是計算key 的Hash值