Python 提供不可變集合,例如凍結集合和元組。被稱為「凍結字典」的字典是否存在類似的概念?
創建這種資料結構的主要動機在於其用於記憶具有動態參數的函數的實用性。通常,字典的可雜湊等價物儲存為包含輸入字典的鍵值對的排序元組。但是,Python 不保證特定的排序順序,可能會導致差異。
可以實作自訂包裝器來模仿凍結字典的行為,並遵守 Python 的映射協定。以下是一個範例:
<code class="python">import collections class FrozenDict(collections.Mapping): def __init__(self, *args, **kwargs): self._d = dict(*args, **kwargs) self._hash = None # Implement methods inherited from collections.Mapping # ... def __hash__(self): # Calculate the hash on demand to optimize performance if self._hash is None: h = 0 for pair in self.items(): h ^= hash(pair) self._hash = h return self._hash</code>
此自訂資料結構的行為與標準字典類似,允許存取鍵、值和迭代。它還支援成員資格和平等性檢查,並且它在其他詞典中可以作為鍵正常工作。
以上是以下是根據您提供的文章提出的一些問題式標題: 直接且專注: * Python 中的凍結字典:一個可行的概念? * Python 字典真的可以不可變嗎? * 有沒有\&qu的詳細內容。更多資訊請關注PHP中文網其他相關文章!