Comment Faire Une Fonction Recursive Qui Rempli Un Dictionnaire Python

Alors, comme ça, vous voulez dompter la récursion pour farcir un dictionnaire Python ? Bienvenue au club des casse-têtes élégants ! On dirait le titre d'un film d'espionnage, mais promis, on va s'amuser (et peut-être s'arracher quelques cheveux, soyons honnêtes).
La récursion, c'est un peu comme ces poupées russes : une fonction qui s'appelle elle-même. C'est super puissant, mais si on ne fait pas attention, ça peut partir en vrille et transformer votre ordinateur en grille-pain. Mais pas de panique, on va éviter le pire ensemble. (Enfin, j'espère... 😜)
Le Concept (Sans Vous Endormir)
L'idée est simple (en théorie, du moins) :
Must Read
- On a une fonction récursive.
- Elle fait quelque chose (ajouter une entrée au dictionnaire, par exemple).
- Elle s'appelle elle-même, mais avec un problème plus petit.
- Il faut absolument une condition d'arrêt ! Sinon, c'est la boucle infinie assurée et votre Python va hurler au secours.
Imaginez que vous rangez une pile de chaussettes. Vous prenez une chaussette, vous la pliez, vous la mettez dans le tiroir, et puis... vous vous souvenez qu'il y a encore des chaussettes ! Vous recommencez, jusqu'à ce qu'il n'y ait plus de chaussettes. C'est ça, la récursion, mais avec du code.
Un Exemple Concret (Enfin Presque)
Supposons qu'on veuille créer un dictionnaire qui contient les nombres de 1 à n et leurs carrés. On pourrait faire ça avec une boucle for, bien sûr, mais où serait le fun ? Alors, on va récurser !

Voici le squelette de notre fonction :
def remplir_dictionnaire_recursivement(n, dictionnaire):
# Condition d'arrêt : si n est plus petit que 1, on a fini !
if n < 1:
return dictionnaire
# On ajoute n et son carré au dictionnaire
dictionnaire[n] = n * n
# Appel récursif avec un n plus petit
return remplir_dictionnaire_recursivement(n - 1, dictionnaire)
Regardez comme c'est beau ! (Bon, d'accord, c'est du code, pas une toile de Monet, mais on peut rêver.)

La condition d'arrêt est n < 1. Si n est plus petit que 1, on a fini, on renvoie le dictionnaire. Sinon, on ajoute n et son carré au dictionnaire, puis on s'appelle avec n - 1. C'est comme grignoter un cookie : on en prend une bouchée, puis une autre, jusqu'à ce qu'il n'y ait plus de cookie.
Comment L'Utiliser (Sans Faire Exploser Votre PC)
Pour utiliser cette fonction, on l'appelle comme ceci :

mon_dictionnaire = {}
resultat = remplir_dictionnaire_recursivement(5, mon_dictionnaire)
print(resultat) # Affiche {5: 25, 4: 16, 3: 9, 2: 4, 1: 1}
Et voilà ! Votre dictionnaire est rempli comme par magie (enfin, par récursion, c'est presque pareil). N'oubliez pas d'initialiser le dictionnaire avant de l'utiliser, sinon Python va vous faire des yeux noirs.
Attention : La récursion peut être gourmande en mémoire. Si n est trop grand, vous risquez de dépasser la limite de récursion de Python. Dans ce cas, il vaut mieux utiliser une boucle classique. Mais pour les petits problèmes, la récursion, c'est classe !
Conclusion (Et Petit Rire)
Alors, prêt à devenir un maître de la récursion ? J'espère que cet article vous a aidé à comprendre comment créer une fonction récursive pour remplir un dictionnaire Python. Si vous avez encore des questions, n'hésitez pas à les poser. Et si votre code plante, rappelez-vous que même les meilleurs développeurs font des erreurs... et qu'il y a toujours le bouton "undo". 😉 (Et sinon, redémarrez l'ordinateur, ça marche aussi parfois.)
