一 :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中,並解釋結果。