python3之字典(dict)和集合 set

2021-08-15 19:24:30 字數 1814 閱讀 9398

python內建了字典:dict的支援,dict全稱dictionary,在其他語言中也稱為map,使用鍵-值(key-value)儲存,具有極快的查詢速度。

>>> d = 

>>> d['lxd']

95

把資料放入dict的方法,除了初始化時指定外,還可以通過key放入:

>>> d['lwb'] = 67

>>> d['lwb']

67

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

>>> d['gsq'] = 99

>>> d['gsq']

99>>> d['gsq'] = 100

>>> d['gsq']

100

要避免key不存在的錯誤,有兩種辦法,一是通過in判斷key是否存在:

>>> 

'thomas'

in d

false

二是通過dict提供的get方法,如果key不存在,可以返回none,或者自己指定的value:

>>> d.get('thomas')

>>> d.get('thomas', -1)

-1

注意:返回none的時候python的互動式命令列不顯示結果。

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

>>> d.pop('lwb')

67>>> d

或者:

>>> 

del d['nml']

>>> d

和list比較,dict有以下幾個特點:

1. 查詢和插入的速度極快,不會隨著key的增加而增加;

2. 需要占用大量的記憶體,記憶體浪費多。

而list相反:

1. 查詢和插入的時間隨著元素的增加而增加;

2. 占用空間小,浪費記憶體很少。

所以,dict是用空間來換取時間的一種方法。需要牢記的第一條就是dict的key必須是不可變物件

set

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

要建立乙個set,需要提供乙個list作為輸入集合:

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

>>> s

重複元素在set中自動被過濾,顯示的順序也不表示set是有序的。

add(key)方法可以新增元素到set中,可以重複新增,但不會有效果:

>>> s.add(4)

>>> s

>>> s.add(4)

>>> s

通過remove(key)方法可以刪除元素:

>>> s.remove(4)

>>> s

set可以看成數學意義上的無序和無重複元素的集合,因此,兩個set可以做數學意義上的交集、並集等操作:

>>> s1 = set([1,2,3])

>>> s2 = set([2,3,4])

>>> s1 & s2

>>> s1 | s2

>>> s1 ^ s2

Python3 字典dict 排序

首先說明一點 python的dict這個東西是沒辦法按照指定順序的key存的 一 按key排序 1,直接從dict輸出,只要保證輸出結果的順序是按key排序就可以了 2,按key儲存為其他一種資料格式 比如list,或者 collections.ordereddict 之後,進行輸出。這樣輸出的結果...

Python3基礎5 字典dict

字典 dict 符號 大括號 花括號 無序 1 可以存在空字典a 2 字典裡面資料儲存的方式 key value 3 字典裡面value可以包含任何型別的資料 4 字典裡面的元素 根據逗號來進行分隔 5 字典裡面的key必須是唯一的 a 字典取值 字典 key print a t age 20刪除 ...

python3基礎之字典

字典是另一種可變容器模型,且可儲存任意型別物件。字典的每個鍵值 key value 對用冒號 分割,每個對之間用逗號 分割,整個字典包括在花括號 中 格式如下所示 d 鍵必須是唯一不可變的 數字 字串 元組 但值則不必。值可以取任何資料型別,但鍵必須是不可變的,如字串,數字或元組。乙個簡單的字典例項...