首頁 > 後端開發 > Python教學 > 如何在 Python 中建立無限級遞歸 defaultdict?

如何在 Python 中建立無限級遞歸 defaultdict?

Susan Sarandon
發布: 2024-11-25 17:32:15
原創
147 人瀏覽過

How Can I Create an Infinite-Level Recursive defaultdict in Python?

創建無限級遞歸defaultdict

在Python中,defaultdict是一個多功能工具,它為字典中缺少的鍵提供預設值。但是,是否可以建立無限級遞歸defaultdict?這意味著創建一個 defaultdict,其中預設值也是一個 defaultdict,從而有效地建立嵌套的 defaultdict。

最初,人們可能會期望 x = defaultdict(defaultdict) 會建立一個兩級 defaultdict,但存取 x[0 ][0] 導致 KeyError。要實現無限級遞歸,需要另一種方法。

一種解決方案是使用 lambda 函數作為預設值:

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

這會建立一個 defaultdict,其中預設值為傳回另一個 defaultdict 並以字典作為預設值的函數。這允許無限級遞歸,因為存取 x[0][1][0] 在嵌套的 defaultdicts 中建立一個空字典。

與其他答案中提出的遞歸方法相比,這種方法具有幾個優點:

  • 顯性:嵌套結構更加明確,更容易理解。
  • 彈性:它允許defaultdict結構的「葉子」是字典以外的東西。例如,defaultdict(lambda: defaultdict(list)) 將建立一個 defaultdict,其中清單作為葉值。

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

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