Dans ce scénario de programmation, notre objectif est de parcourir une structure de dictionnaire potentiellement multicouche et d'imprimer des paires clé-valeur où les valeurs sont pas les dictionnaires imbriqués eux-mêmes. Si une valeur s'avère être un dictionnaire imbriqué, nous devons l'explorer de manière récursive et imprimer également ses paires clé-valeur.
Pour y parvenir, de simples techniques d'itération peuvent ne pas suffire. Au lieu de cela, nous pouvons exploiter le pouvoir de la récursion. Voici une fonction révisée qui intègre la récursion pour gérer efficacement les dictionnaires imbriqués de n'importe quelle profondeur :
def myprint(d): for k, v in d.items(): if isinstance(v, dict): myprint(v) else: print("{0} : {1}".format(k, v))
En appelant myprint avec le dictionnaire initial, la fonction entre dans une boucle récursive. Il visite chaque paire clé-valeur et vérifie si la valeur est un dictionnaire. Si tel est le cas, la fonction s'appelle elle-même avec le dictionnaire de valeurs comme nouvelle entrée, explorant efficacement tous les niveaux imbriqués.
Si la valeur n'est pas un dictionnaire, la fonction imprime simplement la paire clé-valeur actuelle. Ce processus se poursuit jusqu'à ce que tous les niveaux du dictionnaire aient été parcourus.
Voici une démonstration utilisant un exemple de dictionnaire imbriqué :
d = { "xml": { "config": { "portstatus": {"status": "good"}, "target": "1", }, "port": "11", } } myprint(d)
Cela produira le résultat souhaité :
xml : {config: {portstatus: {status: good}, target: 1}, port: 11} config : {portstatus: {status: good}, target: 1} portstatus : {status: good} status : good target : 1 port : 11
Comme vous pouvez le voir, la fonction parcourt le dictionnaire de manière récursive, imprimant toutes les valeurs non imbriquées et explorant les dictionnaires imbriqués jusqu'à ce qu'elle atteigne la feuille. nœuds.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!