Python基礎:dict & set

一 :dictspa

  1:Python內置了字典:dict的支持,dict全稱dictionary,在其餘語言中也稱爲map,使用鍵-值(key-value)存儲,具備極快的查找速度。code

  eg:對象

  

  dict查找速度這麼快?由於dict的實現原理和查字典是同樣的。假設字典包含了1萬個漢字,咱們要查某一個字,一個辦法是把字典從第一頁日後翻,直到找到咱們想要的字爲止,這種方法就是在list中查找元素的方法,list越大,查找越慢。blog

  第二種方法是先在字典的索引表裏(好比部首表)查這個字對應的頁碼,而後直接翻到該頁,找到這個字。不管找哪一個字,這種查找速度都很是快,不會隨着字典大小的增長而變慢。索引

  dict就是第二種實現方式,給定一個名字,好比'Michael',dict在內部就能夠直接計算出Michael對應的存放成績的「頁碼」,也就是95這個數字存放的內存地址,直接取出來,因此速度很是快。內存

  

  2:你能夠猜到,這種key-value存儲方式,在放進去的時候,必須根據key算出value的存放位置,這樣,取的時候才能根據key直接拿到value。字符串

  因爲一個key只能對應一個value,因此,屢次對一個key放入value,後面的值會把前面的值沖掉:get

  eg:it

  

  3:要避免key不存在的錯誤,有兩種辦法,一是經過in判斷key是否存在。io

  eg:

  

  4:用 get() 方法獲取值 ,不存在返回None。( 返回None的時候Python的交互環境不顯示結果 )

  eg:

  

  5:用pop 刪 指定 key

  eg:

  

  

  6:注意

  

 

二:set

  1:

  

   2:添加元素

  

  3: 刪除元素

  

  4:交集 並集

  

  5:set和dict的惟一區別僅在於沒有存儲對應的value,可是,set的原理和dict同樣,因此,一樣不能夠放入可變對象,由於沒法判斷兩個可變對象是否相等,也就沒法保證set內部「不會有重複元素」。試試把list放入set,看看是否會報錯。
  6:

  

 

  牢記:

  

  

  小結:

    使用key-value存儲結構的dict在Python中很是有用,選擇不可變對象做爲key很重要,最經常使用的key是字符串。

    tuple雖然是不變對象,但試試把(1, 2, 3)(1, [2, 3])放入dict或set中,並解釋結果。

相關文章
相關標籤/搜索