使用Bidict 類別實現雙向雜湊表
雙向雜湊表提供了按相同資料中的鍵和值進行索引的能力結構。 Python 的原生字典對於單向映射來說是一種很有價值的資料結構,但在雙向查找方面卻存在不足。本文介紹了一種在 Python 中實作雙向雜湊表的有效方法。
實作細節
實作的核心是 bidict 類,它擴充了 Python 的標準字典。這個類別維護兩個字典:一個用於標準鍵值映射,另一個用於值鍵映射的逆字典。
主要功能
bidict 類別提供幾個值得注意的功能:
使用範例
為了示範其功能,讓我們建立一個bidict並操作它:
<code class="python">import numpy as np bd = bidict(zip(['a', 'b'], np.random.randint(2, size=2))) print(bd) # {'a': 1, 'b': 0} print(bd.inverse) # {1: ['a'], 0: ['b']}</code>
我們可以修改鍵「a」的值:
<code class="python">bd['a'] = 0 print(bd) # {'b': 0, 'a': 0} print(bd.inverse) # {0: ['b', 'a']}</code>
請注意,逆向字典會自動更新以反映變更。我們也可以從字典中刪除項目:
<code class="python">del bd['a'] print(bd) # {'b': 0} print(bd.inverse) # {0: ['b']}</code>
同樣,逆字典無縫地調整到刪除。
總之,bidict 類別提供了一種高效且方便的雙向實作Python 中的雜湊表,提供自動更新逆向目錄、支援多個具有相同值的按鍵和恆定時間查找。
以上是如何在 Python 中實現雙向哈希表?的詳細內容。更多資訊請關注PHP中文網其他相關文章!