首頁 > 後端開發 > Python教學 > 如何從嵌套字典中遞歸迭代和列印鍵值對?

如何從嵌套字典中遞歸迭代和列印鍵值對?

Barbara Streisand
發布: 2024-11-29 17:56:14
原創
706 人瀏覽過

How Can I Recursively Iterate and Print Key-Value Pairs from a Nested Dictionary?

迭代嵌套的字典值

在這個程式設計場景中,我們的目標是遍歷潛在的多層字典結構並列印鍵值對,其中值是不是嵌套字典本身。如果一個值恰好是一個嵌套字典,我們需要遞歸地探索它並列印它的鍵值對。

要實現這一點,簡單的迭代技術可能還不夠。相反,我們可以利用遞歸的力量。這是一個修改後的函數,它結合了遞歸來有效地處理任何深度的巢狀字典:

def myprint(d):
    for k, v in d.items():
        if isinstance(v, dict):
            myprint(v)
        else:
            print("{0} : {1}".format(k, v))
登入後複製

透過使用初始字典呼叫 myprint,該函數進入遞歸循環。它存取每個鍵值對並檢查該值是否為字典。如果是,函數會使用值字典作為新輸入來呼叫自身,從而有效地深入任何巢狀層級。

如果該值不是字典,則函數只會印出目前的鍵值對。此過程一直持續到遍歷完字典的所有層級為止。

這是使用範例巢狀字典的示範:

d = {
    "xml": {
        "config": {
            "portstatus": {"status": "good"},
            "target": "1",
        },
        "port": "11",
    }
}

myprint(d)
登入後複製

這將產生所需的輸出:

xml : {config: {portstatus: {status: good}, target: 1}, port: 11}
config : {portstatus: {status: good}, target: 1}
portstatus : {status: good}
status : good
target : 1
port : 11
登入後複製

如您所見,該函數遞歸地迭代字典,列印所有非巢狀值並深入到巢狀值字典,直到到達葉節點。

以上是如何從嵌套字典中遞歸迭代和列印鍵值對?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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