如何建立無限嵌套的預設字典?換句話說,是否可以將一個defaultdict的預設值設為另一個defaultdict?這將允許任意深度的嵌套結構根據需要自動建立必要的字典。
例如,考慮以下程式碼:
x = defaultdict(...stuff...) x[0][1][0] {}
在這種情況下,x[0] 將是一個defaultdict,x[0][1]將是另一個defaultdict,x [0][1][0]將是一個標準字典。
雖然可以建立包含其他defaultdict 的defaultdict,但標準defaultdict 參數並不會直接支援它。但是,有一個簡單的解決方法,允許多層級嵌套 defaultdict。
不要將預設值定義為另一個defaultdict,而是將預設值定義為傳回defaultdict 的lambda 函數:
x = defaultdict(lambda: defaultdict(dict))
此程式碼建立一個兩級defaultdict,其中x[0 ]是一個defaultdict,x[0][1]是另一個defaultdict,其值為字典。
對於無限級嵌套,只需向lambda 函數添加額外的級別即可:
x = defaultdict(lambda: defaultdict(lambda: defaultdict(...)))
此解決方法可以創建任意嵌套的預設字典,提供一種管理複雜資料的便捷方法具有自動價值創造的結構。
以上是如何在 Python 中建立無限嵌套的 defaultdict?的詳細內容。更多資訊請關注PHP中文網其他相關文章!