20201019 Python學習筆記8

2022-08-11 11:12:10 字數 2531 閱讀 3740

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 d

false

>>> '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行業的似乎都是格仔襯衫,髮量少且髮際線高,駝背戴眼鏡,經常揹著雙肩包,中年油膩大叔,不懂浪漫沒有情調等等,這些都是程式設計師的標籤。對於圈外人來說,程式設計師可能是西裝革履,品質貓屎咖啡,喝著下午...