1. 程式人生 > >python的dict和set型別(python為2.7版本)

python的dict和set型別(python為2.7版本)

python之什麼是dict

    中文的說法就是字典,表現形式是鍵值對的形式,即key-value形式,類似於java裡的map集合,dict就是通過key來查詢value。dict的表現方式是用一對花括號{}來表示:

    

    由於dict也是集合,len()可以計算任意集合的大小,上述結果:

    

python訪問字典

    上述的字典,如何根據名字來查詢成績?可以通過d[key]的形式,查詢對應的value,這和list很像,只不過list是通過索引獲取元素,而字典是通過key來獲取對應的value:

    

    由於沒有pual這個人,所以報keyError的錯誤,要避免這種錯誤,有兩種方法:

    1:判斷key是否存在,用in操作符:

        if 'pual' in d:

            print d['pual']

    2:使用dict本身的get()方法,如果key 不存在,則返回None

        

python中dict的特點

    1.dict的第一個特點就是查詢速度快,無論其內部含有多少元素,查詢速度都一樣。而list相反,它的查詢速度會隨著元素的增加而遞減。

       雖然dict查詢速度快,但是dict佔用記憶體比較大,list相反,佔用記憶體小。

       由於dict是按照key查詢,所以dict的key不能重複。

    2.dict的第二個特點就是內部的鍵值對元素排列是無序的,不能用dict儲存有序的集合,這和list相反

        

        

     3.dict的第三個特點是所有的key元素必須是不可變的,如字串,整數,浮點數,因為list是可變的,所以list不能作為key

python更新dict

     dict是可變的,我們隨時可以往dict中新增新的鍵值對:

     

     

    如果key已經存在,那麼就會用新的value來替換舊的value。

python之遍歷dict

    由於dict也是一種集合,所以遍歷idct和遍歷List是一樣的,用for迴圈遍歷dict的key值,我們有了key值,就能夠拿到對應的value值:

    

   

python中什麼是set

我們已經知道,dict的作用是建立一組key,value值,它的key不能重複,有時候我們需要拿到它所有的key值來組成一個集合,這個集合就用set來表示,set也是一個無序並且不能重複的集合。

建立set的方式很簡單,呼叫set()函式,傳入一個list引數即可:

因為set是一個不能有重複元素的集合,所以當你傳引數有相同元素的時候,set最後只保留一個。

python之訪問set

之前有提到過,set是一個無序的集合,那我們就不能通過下標索引來訪問set集合。所以我們訪問set裡的元素,其實就只要判斷該元素是否存在於set中即可。比如:s = set([True, 12, 'hello', 2.3]),判斷12是否存在,用in操作符,存在返回True,否則返回False:

python之set的特點

set的內部結構和dict很像,所以set也是有三個特點:

1.判斷一個元素是否在set中的速度很快;

2.set內部儲存的元素是無序的;

3.set儲存的元素必須是不可變的;

python之遍歷set

由於set也是一個集合,所以遍歷set和遍歷list一樣,用for迴圈:

python之更新set

因為set是一組無序不重複的元素的集合,所以更新set就是兩件事,新增和刪除元素,新增用add()方法,刪除用remove()方法。

如果新增的元素在set中已存在,改方法不會報錯,但元素無法新增進去:

刪除元素時,如果刪除的元素不存在,則會報錯:

所以新增元素時直接新增,刪除元素時,要先判斷。