天天看點

菜鳥學python之dict

  存儲位置=hash(鍵)

在搜尋時,首先對鍵進行hash運算,把求得的值當做“鍵-值對”的存儲位置,在結構中按照此位置取“鍵-值對”進行比較,若鍵相等,則表示搜尋成功。在存儲“鍵-值對”的時候,依照相同的hash函數計算存儲位置,并按此位置存放,這種方法就叫做哈希方法,也叫做散列方法。在哈希方法中使用的轉換函數hash被稱作哈希函數(或者散列函數)。按照此中算法構造出來的表叫做哈希表(或者散清單)。

哈希函數建立了從“鍵-值對”到哈希表位址集合的一個映射,有了哈希函數,我們就可以根據鍵來确定“鍵-值對”在哈希表中的位置的位址。使用這種方法由于不必進行多次鍵的比較,是以其搜尋速度非常快,很多系統都使用這種方法進行資料的組織和檢索。

舉一個例子,有一組“鍵值對”:<5,”tom”>、<8,”Jane”>、<12,”Bit”>、<17,”Lily”>、<20,”sunny”>,我們按照如下哈希函數對鍵進行計算:hash(x)=x%17+3;hash(5)=8、hash(8)=11、hash(12)=15、hash(17)=3、hash(20)=6。我們把<5,”tom”>、<8,”Jane”>、<12,”Bit”>、<17,”Lily”>、<20,”sunny”>分别放到位址為8、11、15、3、6的位置上。當要檢索17對應的值的時候,隻要首先計算17的哈希值為3,然後到位址為3的地方去取資料就可以找到17對應的資料是“Lily”了,可見檢索速度是非常快的。

1.1 字典建立

tips:1使用{}; 2key-values之間使用:分割 3,不同項之間采用,分割

1.2 字典元素通路

1)通過key做下标通路

2)通過方法get

2.1 增加字典元素

不同于list的增加,list如果内部不存在變量則不能直接指派,必須通過,insert,append等方法;而字典可以直接指派;存在則改變,不存在則建立新對象并指派

2.2 删除字典元素

2.2.1 pop彈出

2.2.2 popitem彈出項

2.2.3 del語句删除

2.2.4 修改元素

1)直接指派法  同2.1所示

2)update修改

小結

繼續閱讀