Python雜湊表的例子:dict、set

來源:互聯網
上載者:User

標籤:list   strong   字元   ace   ash   不能   刪除   雜湊演算法   rac   

dict(字典)

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

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

  1. 尋找和插入的速度極快,不會隨著key的增加而變慢;
  2. 需要佔用大量的記憶體,記憶體浪費多。

而list相反:

  1. 尋找和插入的時間隨著元素的增加而增加;
  2. 佔用空間小,浪費記憶體很少。

所以,dict是用空間來換取時間的一種方法。

dict可以用在需要高速尋找的很多地方,在Python代碼中幾乎無處不在,正確使用dict非常重要,需要牢記的第一條就是dict的key必須是不可變對象

這是因為dict根據key來計算value的儲存位置,如果每次計算相同的key得出的結果不同,那dict內部就完全混亂了。這個通過key計算位置的演算法稱為雜湊演算法(Hash)。

要保證hash的正確性,作為key的對象就不能變。在Python中,字串、整數等都是不可變的,因此,可以放心地作為key。而list是可變的,就不能作為key:

>>> key = [1, 2, 3]>>> d[key] = ‘a list‘Traceback (most recent call last):  File "<stdin>", line 1, in <module>TypeError: unhashable type: ‘list‘
‘‘‘dictionary:包含<key, value> 基本操作‘‘‘my_dict = {‘name‘:‘kumata‘,‘age‘:20,‘location‘:‘zhuhai‘}#輸出索引值print(my_dict[‘name‘]) #增加鍵對值my_dict[‘sex‘] = ‘man‘print(my_dict)#修改字典中的值my_dict[‘age‘] = 21print(my_dict)#刪除索引值對del my_dict[‘sex‘]print(my_dict)#遍曆字典for key,value in my_dict.items():    print(key ,‘:‘,value)#清除字典my_dict.clear()print(my_dict)
set(集合)

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

‘‘‘set和dict類似,也是一組key的集合,但不儲存value。由於key不能重複,所以,在set中,沒有重複的key。要建立一個set,需要提供一個list作為輸入集合:‘‘‘s1 = set([1,2,3,4,5])print(s1) #{1, 2, 3, 4, 5}#重複元素在set中自動被過濾s2 = set([1,1,2,3,3,4])print(s2) #{1, 2, 3, 4}#add(key)添加元素s1.add(6)print(s1) #{1, 2, 3, 4, 5, 6}s1.add(1)print(s1) #{1, 2, 3, 4, 5, 6}#remove(key)刪除元素s1.remove(6)print(s1) #{1, 2, 3, 4, 5}

 

Python雜湊表的例子:dict、set

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.