走進Python世界(8)----使用dict和set

dict

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

d={'高數':93,'英語':69,'Python':100}

print("Python:",d['Python'])

由於一個key只能對應一個value,所以,多次對一個key放入value,後面的值會把前面的值沖掉

如果key不存在,dict就會報錯,要避免key不存在的錯誤,有兩種辦法:

一是通過in判斷key是否存在;
二是通過dict提供的get方法,如果key不存在,可以返回None,或者自己指定的value

注意:返回None的時候Python的交互式命令行不顯示結果。

要刪除一個key,用pop(key)方法,對應的value也會從dict中刪除:

請務必注意,dict內部存放的順序和key放入的順序是沒有關係的。

優缺點

查找和插入的速度極快,不會隨着key的增加而變慢;
需要佔用大量的內存,內存浪費多

dict是用空間來換取時間的一種方法。

dict可以用在需要高速查找的很多地方,在Python代碼中幾乎無處不在,正確使用dict非常重要,需要牢記的第一條就是dict的key必須是不可變對象

set

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

s = set([1, 2, 3])

注意,傳入的參數[1, 2, 3]是一個list,而顯示的{1, 2, 3}只是告訴你這個set內部有1,2,3這3個元素,顯示的順序也不表示set是有序的,重複元素在set中自動被過濾。通過add(key)方法可以添加元素到set中,可以重複添加,但不會有效果。

set和dict的唯一區別

僅在於沒有存儲對應的value,但是,set的原理和dict一樣,所以,同樣不可以放入可變對象,因爲無法判斷兩個可變對象是否相等,也就無法保證set內部“不會有重複元素”。試試把list放入set,看看是否會報錯。

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