Python哈希表
散列表(也叫哈希表)是一種數據結構,其數據元素的地址或索引值由散列函數生成。 這使得訪問數據的速度更快,因爲索引值是數據值的關鍵字。 換句話說,哈希表存儲鍵值對,但鍵是通過哈希函數生成的。
因此,數據元素的搜索和插入函數變得更快,因爲鍵值本身成爲存儲數據的數組的索引。
在Python中,字典數據類型表示哈希表的實現。字典中的鍵滿足以下要求。
- 字典的鍵是可散列的,即通過散列函數生成該散列函數,該散列函數爲提供給散列函數的每個唯一值生成唯一結果。
- 字典中數據元素的順序不固定。
所以可通過使用下面的字典數據類型來看到哈希表的實現。
在字典中訪問值
要訪問字典元素,可以使用熟悉的方括號 - []
來獲取它的值。
# Declare a dictionary
dict = {'Name': 'maxsu', 'Age': 27, 'Class': 'First'}
# Accessing the dictionary with its key
print ("dict['Name']: ", dict['Name'])
print ("dict['Age']: ", dict['Age'])
執行上面示例代碼,得到以下結果 -
dict['Name']: maxsu
dict['Age']: 27
更新字典元素
可以通過添加新條目或鍵值對,修改現有條目或刪除現有條目來更新字典,如簡單示例中所示 -
# Declare a dictionary
dict = {'Name': 'Maxsu', 'Age': 26, 'Class': 'First'}
dict['Age'] = 8; # update existing entry
dict['School'] = "第一中學"; # Add new entry
print ("dict['Age']: ", dict['Age'])
print ("dict['School']: ", dict['School'])
執行上面示例代碼,得到以下結果 -
dict['Age']: 8
dict['School']: 第一中學
刪除字典元素
可以刪除單個字典元素,也可以清除字典的全部內容。 也可以在一個操作中刪除整個字典。 要顯式刪除整個字典,只需使用del
語句。 參考以下代碼 -
dict = {'Name': 'Maxsu', 'Age': 26, 'Class': 'First'}
del dict['Name']; # remove entry with key 'Name'
dict.clear(); # remove all entries in dict
del dict ; # delete entire dictionary
print ("dict['Age']: ", dict['Age'])
print ("dict['School']: ", dict['School'])
執行上面示例代碼,得到以下結果 -
請注意,由於在執行
del
語句之後,字典不再存在之後會引發異常。
Traceback (most recent call last):
File "F:\worksp\pythonds\test.py", line 7, in <module>
print ("dict['Age']: ", dict['Age'])
TypeError: 'type' object is not subscriptable