dict :全稱dictionary,在其他語言中也稱為map,使用鍵 - 值 (key-value)儲存,具有極快的查詢速度。
示例:如果用list實現根據學生名字查詢對應成績,需要兩個list,先在名字list中找到,然後再查詢對應成績list,找到後取出成績,這樣花費的時間較長。
用dict實現,只需要乙個「名字-成績」的對照表,直接根據名字查詢成績,無論這個表有多大,查詢速度都不會變慢。
>>> d =>>> d['maike']
99>>> d['mali']
68>>>
這種key-value儲存方式,在放進去的時候,必須根據key算出value的存放位置,這樣,取的時候才能根據key直接拿到value。
把資料放入dict的方法,除了初始化時指定外,還可以通過key放入:
>>> d =>>> d['maike']
99>>> d['mali']
68>>> d['mali'] = 100
>>> d['mali']
100>>> d['maike'] = 80
>>> d['maike']
80>>>
不存在key,會報錯
>>> d['opo']traceback (most recent call last):
file "", line 1, in keyerror: 'opo'
>>>
兩種判斷方法:
1、通過in方式判斷key是否存在
>>> 'zhangsan' in dfalse
>>> 'mali' in d
true
>>> 'maike' in d
true
>>>
2、通過dict提供的get()方法,如果key不存在,返回none為空,或者自己指定的value
>>> d.get('mali')100>>> d.get('lisi')
>>> d.get('wangwu',-1)
-1>>>
要刪除乙個key,用pop(key)方法,對應的value也會從dict中刪除:
>>> d.pop('mali')100>>> d
>>>
dict內部存放的順序和key放入的順序沒有關係
兩者對比特點
dict特點:
查詢和插入的速度很快,不會隨著key的增加而變慢
需要占用大量的記憶體,記憶體浪費較多
list特點:
查詢和插入的時間隨著元素的增多而增多
占用空間小,浪費記憶體少
dict的key必須是不可變物件。
這是因為dict根據key來計算value的儲存位置,如果每次計算相同的key得出的結果不同,那dict內部就完全混亂了。這個通過key計算位置的演算法稱為雜湊演算法(hash)。
要保證hash的正確性,作為key的物件就不能變。在python中,字串、整數等都是不可變的,因此,可以放心地作為key。而list是可變的,就不能作為key:
set:和dict類似,set是一組key的集合,但不儲存value。由於key不能重複,所以,在set中,沒有重複的key。
要建立乙個set,需要提供乙個list作為輸入集合
>>> s = set([1,2,3,4,5])>>> s
>>>
傳入的引數[1,2,3,4,5]是乙個list,而顯示的{1,2,3,4,5}只是告訴你這個set中有12345這五個元素,顯示的順序不表示set是有序的
重複元素在set中會被自動過濾
>>> s = set([1,1,2,3,4,5,4,3])>>> s
>>>
通過add(key)方法可以新增元素到set中,也可以重複新增,但不會有效果
>>> s.add(3)>>> s
>>> s.add(3)
>>> s
>>> s.add(7)
>>> s
>>>
通過remove(key)方法可以刪除元素:
>>> s.remove(4)>>> s
>>> s.remove(5)
>>> s
set可以看成數學意義上的無序和無重複元素的集合,因此,兩個set可以做數學意義上的交集、並集等操作
>>> s1 = set ([1,2,3])>>> s2 = set ([2,3,4])
>>> s1 & s2
>>> s1 | s2
>>>
set和dict的唯一區別僅在於沒有儲存對應的value,但是,set的原理和dict一樣,所以,同樣不可以放入可變物件,因為無法判斷兩個可變物件是否相等,也就無法保證set內部「不會有重複元素」
學python的遊戲app 學Python
基本內容 學python軟體中的python教學內容涵蓋基礎概念 控制結構 函式模組 檔案操作 面試物件 函式程式設計 異常處理 正規表示式。通過簡短的課程和有趣的小測驗進行python學習衝浪。在突破乙個個學習小關口,展示你的it程式設計技能。python教程,講解了python基礎知識,也介紹了...
手機學python好嗎 學Python怎麼樣?
第一,更高的工作效率 這兩年python在業內大火的原因除了雲計算幫python帶來的熱潮之外,更多的是本身的特性。目前網際網路創業熱情高漲,創業者和投資者都希望投資回報週期快。因此,一門開發效率極高的語言就此進入開發者眼簾,眾多創業公司 python做為開發語言,催生了python在國內大熱的現象...
女生學python 女生適合學Python嗎?
學習程式設計對於性別沒有什麼特別強制的要求,不管是男生還是女生,都是可以的。可能在圈外行業來說,從事it行業的似乎都是格仔襯衫,髮量少且髮際線高,駝背戴眼鏡,經常揹著雙肩包,中年油膩大叔,不懂浪漫沒有情調等等,這些都是程式設計師的標籤。對於圈外人來說,程式設計師可能是西裝革履,品質貓屎咖啡,喝著下午...