Python-dict/set

dict:字典,使用鍵-值(key-value)存儲,具備很是快的查找速度。spa

一、初始化:d = {'Michael':95,'Bob':75,'Tracy':85}code

二、讀取:d['Michael']   95對象

這種存儲方式在放進去的時候,必須根據key算出value的存放位置,這樣取得時候才能根據key直接拿到value。內存

把數據放入dict的方法,除了初始化時指定外,還能夠經過key放入:rem

d['Machael'] = 67get

屢次在一個key放入value會把前面的值沖掉,若是key值不存在也會報錯。數學

三、判斷key是否存在:in   'Thomas' in d  返回false原理

          經過dict提供的get方法,若是key不存在,返回None,或本身指定的value:方法

>>> d.get('Thomas')
>>> d.get('Thomas', -1)
-1
四、刪除:pop(key): d.pop('Bob')
五、和list相比,dict的特色:
  1)查找和插入速度快,不會隨着key的增長而增長。
  2)須要佔用大量的內存,內存浪費多。
而list相反:
  1)查找和插入隨着元素的增長時間增長
  2)佔用空間小,浪費內存不多。


set
set和dict類似,也是一組key的集合,可是不存儲value。因爲key不能重複,因此,在set中,沒有重複的key。
一、建立一個set,須要提供一個list做爲輸入集合:
s = set([1,2,3])
二、重複元素在set中自動被過濾:
s = set([1,1,1,2,2,3,3])
s 1 2 3
三、添加元素:s.add(4)
四、刪除元素:s.remove(4)
五、set能夠當作數學意義上的無序和無重複元素的集合,所以,兩個set能夠作數學意義上的交集、並集等操做。
>>> s1 = set([1, 2, 3])
>>> s2 = set([2, 3, 4])
>>> s1 & s2
set([2, 3])
>>> s1 | s2
set([1, 2, 3, 4])
set和dict的惟一區別僅在於沒有存儲對應的value,可是,set的原理和dict同樣,因此,一樣不能夠放入可變對象,由於沒法判斷兩個可變對象是否相等,也就沒法保證set內部「不會有重複元素」。試試把list放入set,看看是否會報錯。

因此,對於不變對象來講,調用對象自身的任意方法,也不會改變該對象自身的內容。相反,這些方法會建立新的對象並返回,這樣,就保證了不可變對象自己永遠是不可變的。數據

相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息