首頁 > 後端開發 > Python教學 > 如何在 Python 中建立無限嵌套的 defaultdict?

如何在 Python 中建立無限嵌套的 defaultdict?

DDD
發布: 2024-11-26 07:43:09
原創
269 人瀏覽過

How to Create an Infinitely-Nested defaultdict in Python?

如何建立無限級遞歸defaultdict

Python的defaultdict是一種通用的資料結構,可用於建立嵌套字典。但是,預設情況下,defaultdicts 僅提供單層巢狀。有沒有辦法創建一個defaultdict,它充當內部defaultdict的預設工廠,從而有效地創建無限級遞歸結構?

原始問題試圖實現以下行為:

x = defaultdict(...stuff...)
x[0][1][0]
# Should return an empty dictionary {}
登入後複製

只使用本機defaultdict參數,不可能建立無限嵌套的遞歸defaultdict。流行的解決方法是利用 lambda 函數:

x = defaultdict(lambda: defaultdict(dict))
登入後複製

此方法建立一個 defaultdict,在存取遺失的鍵時產生新的 defaultdict。這有效地提供了無限的嵌套。

基於 Lambda的方法的優點:

  • 明確且易於理解:語法清晰定義所需的行為,使其他開發人員可以輕鬆地
  • 靈活的資料類型:defaultdict的「葉子」可以透過修改lambda函數自訂為列表、集合或任何其他資料結構。

注意:

無限嵌套使用lambda 的defaultdict 具有以下特徵:

  • 存取缺失的鍵將始終返回指定資料類型的新實例(在本例中為defaultdict(dict))。
  • 巢狀深度在技術上受可用記憶體和使用的特定資料結構(在本例中為 defaultdict(dict))的限制。

以上是如何在 Python 中建立無限嵌套的 defaultdict?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板