python——dict和set

dict

python的內置字典,全稱爲dictionary,在其他語言中也稱爲map,使用鍵值對存儲,具有極快的查找速度

 

實現原理:與查字典一樣

key-value存儲方式:在放進去的時候,必須根據key的值算出value的位置。key-value時一一對應的,取值的時候可以根據key直接拿到value

dict初始化方法:

  1. 定義時就初始化: eg : 
     d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
  2. 通過key放入:注意:因爲key-value是一一對應的,所以當對同一個key進行多次賦值時,會把前面的值覆蓋
    d['Adam'] = 67

dict中其他問題:

  1. 如果dict不存在時,查找會報錯
  2. 判斷key是否存在的兩種方法:
  • 通過in判斷key是否存在 :存在返回true不存在放回false
  • >>> 'Thomas' in d
    False
  • 通過dict提供的get()方法,如果不存在,返回None,或者自己指定的value
  • >>> d.get('Thomas')
    >>> d.get('Thomas', -1)
    -1
  1. 刪除:用pop(key)方法,key對應的value也會被刪除

set

set可以看做是數學上無序無重複元素的集合

set和dict類似,也是一組key的集合,但不存儲value。由於key不能重複,所以,在set中,沒有重複的key

  • 創建set,需要提供一個list作爲輸入集合:

如: s = set([1,2,2])

在這裏傳入的參數是[1,2,2]是一個list,而顯示的{1,2,2}只是告訴你這個set內部有1,2,2這三個元素,顯示的順序也不表示set是有序的

  • 通過add(key)方法可以添加元素到set中,可以重複添加,但是無效
  • remove(key)方法可以刪除元素
  • set可以看做是數學上無序無重複元素的集合,因此,兩個set可以做數學意義上的交集、並集等操作
  • >>> s1 = set([1, 2, 3])
    >>> s2 = set([2, 3, 4])
    >>> s1 & s2
    {2, 3}
    >>> s1 | s2
    {1, 2, 3, 4}

set與dict 區別:

set只有key,沒有存儲對應的value

set與dict相同:

set和dict原理一樣,同樣不可以放入可變對象,因爲無法判斷兩個可變對象是否相等,也就無法保證set內部‘不會有重複元素’

不可變對象

str是不變對象,list是可變對象

可變對象:

內部的內容是可以改變的

不可變對象:

內部的內容不可變;調用對象自身的任意方法,也不會改變該對象自身的內容。相反,這些方法會創建新的對象並返回,這樣,就保證了不可變對象本身是永遠不可能改變的。

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章