在這個程式設計場景中,我們的目標是遍歷潛在的多層字典結構並列印鍵值對,其中值是不是嵌套字典本身。如果一個值恰好是一個嵌套字典,我們需要遞歸地探索它並列印它的鍵值對。
要實現這一點,簡單的迭代技術可能還不夠。相反,我們可以利用遞歸的力量。這是一個修改後的函數,它結合了遞歸來有效地處理任何深度的巢狀字典:
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中文網其他相關文章!