Python 中可能存在「凍結字典」嗎?
「凍結字典」的概念一直是業界討論的話題Python 社群。雖然 Python 不提供內建的 freezedict,但已經出現了幾種解決方案來滿足對不可變、可散列字典的需求。
需要凍結字典的一個常見原因是記住帶有未知參數的函數呼叫。典型的方法包括使用 tuple(sorted(kwargs.items())) 將參數轉換為元組,依賴於雜湊表查找的排序穩定性。
對於更全面的方法,請考慮以下 FrozenDict 類別:
import collections
class FrozenDict(collections.Mapping):
...
該類別提供了迭代、長度確定、項目檢索和哈希計算的方法,確保其行為像標準字典並支持哈希。
在實務中,FrozenDict 運作高效率:
x = FrozenDict(a=1, b=2)
y = FrozenDict(a=1, b=2)
print(x is y, x == y, x == {'a': 1, 'b': 2})
d = {x: 'foo'}
print(d[y]) # 'foo'
透過提供自訂實現,FrozenDict 允許在 Python 中使用不可變、可散列的字典,從而擴展了物件處理和記憶體優化的可能性。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3