python基礎之字典dict和集合set

LTQblog發表於2017-06-19

作者:tongqingliu
轉載請註明出處:http://blog.csdn.net/qq_22186119/article/details/73467567

python基礎之字典dict和集合set

字典dict

字典使用鍵值對儲存,具有極快的查詢速度。

>>> d = {'Michael': 95, 'Bob': 75, 'Tracy': 85} # 建立字典
>>> d
{'Michael': 95, 'Tracy': 85, 'Bob': 75}
>>> d['Michael']  # 字典的索引
95
>>> d['Jack'] = 90 # 為字典新增元素
>>> d['Jack']
90
>>> d['Jack'] = 88 # 更新字典中鍵的值
>>> d['Jack']
88
>>> d
{'Michael': 95, 'Jack': 88, 'Tracy': 85, 'Bob': 75}
>>> 'Thomas' in d # 判斷字典中是否存在某個鍵,若存在則返回True,若不存在則返回False
False
>>> d.get('Bob') # get方法,如果key不存在,返回None,如果存在則返回對應的值
75
>>> d.get('Haha') # 不存在,返回None
>>> d.pop('Bob') # 刪除Bob對應的鍵值對
75
>>> d
{'Michael': 95, 'Jack': 88, 'Tracy': 85}

dict內部存放的順序和key放入的順序沒有關係。
字典的鍵必須是不可變物件。

字典和列表的對比

dict有以下幾個特點:

  • 查詢和插入的速度極快,不會隨著key的增加而變慢;
  • 需要佔用大量的記憶體,記憶體浪費多。
    而list相反:

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

  • 佔用空間小,浪費記憶體很少。
    所以,dict是用空間來換取時間的一種方法。

集合set

set和dict類似,也是一組key的集合,但不儲存value。這裡的集合與數學上的集合類似,其中的key不能重複。

>>> s = set([1, 2, 3]) # 通過列表建立集合
>>> s
{1, 2, 3}
>>> s = set([1, 1, 2, 2, 3, 3]) # 集合去除重複元素
>>> s
{1, 2, 3}
>>> s.add(4) # 給集合新增元素
>>> s
{1, 2, 3, 4}
>>> s.add(4) # 重複新增元素不會報錯,但不會起作用
>>> s
{1, 2, 3, 4}
>>> s.remove(4) # 刪除元素
>>> s
{1, 2, 3}
>>> s1 = set([1, 2, 3])
>>> s2 = set([2, 3, 4])
>>> s1 & s2 # 求交集
{2, 3}
>>> s1 | s2 # 求並集
{1, 2, 3, 4}

參考:

http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/00143167793538255adf33371774853a0ef943280573f4d000

相關文章