
Mes doigts restent suspendus au-dessus du clavier, une accolade ouverte au milieu de l'écran, aucune idée de comment refermer proprement ce dictionnaire Python censé ranger le contenu de mon sac de courses tout juste rapporté des Halles Saint-Joseph. Debout devant le plan de travail, je me dis que l'auto-formation en Python, quand on est une débutante complète qui apprend à coder après le travail, ressemble beaucoup à ça : des allers-retours entre l'écran et le reste de la vie, sans jamais vraiment refermer le sujet.
Petite précision avant d'aller plus loin, parce que je préfère jouer cartes sur table : ce carnet contient des liens affiliés, et si vous achetez une ressource par ce biais, je touche une petite commission, sans surcoût pour vous. Je ne cite jamais que ce que j'utilise vraiment sur ma table en formica, comme la Formation au langage Python qui reste, encore aujourd'hui, la base sur laquelle je m'appuie.
Avant de m'installer à cette table, j'avais tenté un MOOC gratuit trouvé en ligne, pleine de bonne volonté un dimanche soir. Je l'ai abandonné avant la fin de la deuxième semaine : le rythme imposé, avec ses dates limites, ne collait pas avec mes soirées imprévisibles, et j'ai fini par tout ranger dans un onglet fermé sans regret.
Les listes qui me trahissaient dès que ça s'allongeait
Depuis mes débuts, je rangeais tout dans des listes, ces éléments entre crochets qu'on m'avait présentés comme la porte d'entrée logique. Pour ma liste de courses, il fallait retenir que l'index 0 correspondait au lait et l'index 1 à son prix — une gymnastique que ma tête refuse de faire un soir de semaine, un peu comme essayer de se souvenir dans quel tiroir de la cuisine on a rangé les piles sans étiquette.
Un tiroir, ça oblige à fouiller avant de savoir ce qu'il contient, et retrouver un ingrédient dans une liste de plus en plus longue commençait à me coûter plus d'énergie que la vaisselle du soir. Ce qu'il me fallait, c'était pouvoir nommer chaque chose directement, comme sur une étiquette de pot à épices, plutôt que de compter les rangs un par un.

Accolades, deux-points : le duo qui m'a fait douter
Le principe tient sur une image simple, une fois qu'on l'a en tête : dans un dictionnaire Python, chaque valeur porte une étiquette unique, sa clé, et on la retrouve en appelant cette étiquette plutôt qu'en comptant sa position. Les accolades {} ouvrent le contenant, les deux-points séparent l'étiquette de ce qu'elle désigne, et les crochets [] servent ensuite à rappeler une valeur précise par sa clé. Mes clés, dans mon script de courses, sont presque toujours du texte entre guillemets — une chaîne de caractères, comme on dit — parce que « lait » est quand même plus parlant qu'un numéro.
J'ai perdu un temps que je préfère ne pas chiffrer à chercher pourquoi mon code ne trouvait pas « Pomme », alors que j'avais écrit « pomme » avec une minuscule quelque part ailleurs dans le script. En Python, la moindre majuscule égarée change tout, et ça m'a presque poussée à tout laisser tomber pour aller voir du côté du langage JavaScript, en me disant que l'herbe y serait peut-être plus verte, avant de me raviser et de rester fidèle à mes accolades.
L'autre jour, une collègue m'a demandé un coup de main sur une formule Excel qui refusait obstinément de calculer son total, et je me suis surprise à lui détailler sa suite de conditions comme s'il s'agissait d'un bout de code : si telle case est remplie, alors fais ceci, sinon fais autre chose. Elle n'a rien compris à mes histoires de Python, mais la formule, elle, a fini par cracher le bon chiffre.
Comment .get() m'a évité bien des soirées stressantes
Avant de connaître cette méthode, demander au dictionnaire une clé absente faisait planter tout le script d'un coup, avec un message rouge qui me donnait des sueurs froides un soir où je voulais juste vérifier s'il restait du budget pour des poireaux. La méthode .get() a changé la donne : au lieu d'exiger une réponse, elle accepte de dire « rien trouvé » sans faire tout s'effondrer.
J'aurais pu gérer ça autrement, avec un bloc if / else bien lourd pour vérifier d'abord si la clé existe, ou un try / except pour attraper l'erreur au moment où elle arrive — les deux marchent, mais .get() m'évite d'écrire dix lignes pour poser une question aussi simple. Au moins, sur ce coup-là, mon ordinateur n'a pas ajouté de complication : comme j'avais pris le temps de bien installer Python sur Windows dès le départ, les plantages venaient uniquement de ma logique, jamais de la machine.
Mon script demande maintenant le nom d'un produit au clavier avec input(), avant d'aller chercher son prix dans le dictionnaire — un petit confort qui change tout comparé à devoir deviner l'ordre exact de mes courses.

Choisir entre liste et dictionnaire, sans se tromper
La vraie question n'est pas laquelle des deux structures est la meilleure, mais ce qu'on cherche à faire avec les données. Une liste garde tout dans l'ordre où on l'a écrit, ce qui est parfait quand on doit parcourir chaque élément l'un après l'autre — je sais qu'il existe des boucles for et while pour ça, même si je n'en maîtrise encore que les bases. Un dictionnaire, lui, est fait pour aller chercher une valeur précise sans avoir à tout parcourir, à condition de connaître son étiquette.
Un détail m'a rassurée en creusant le sujet : mes dictionnaires gardent aujourd'hui l'ordre dans lequel j'écris mes éléments, sans que Python ne redistribue les cartes dans mon dos comme il pouvait le faire avant — un point technique que je ne maîtrise pas dans le détail, mais qui me suffit pour dormir tranquille. Cassandre, mon amie d'enfance qui appelle tout ça « mon truc ordinateur », m'a demandé pourquoi je m'embêtais avec un dictionnaire si ce n'était pas pour chercher un mot dans le vrai sens du terme — une question toute bête qui m'a forcée à trouver une explication plus claire que celle que j'avais dans la tête.
Si je devais résumer pour quelqu'un qui hésite encore : une liste convient quand l'ordre et la position comptent plus que le nom de chaque chose ; un dictionnaire s'impose dès qu'on veut retrouver une valeur par son étiquette, même fatiguée, même après une journée entière. Depuis que j'ai intégré ça, je ne me pose plus la question à chaque script — les accolades sortent presque toutes seules.
Mon stock de cuisine tourne enfin, trous compris
Aujourd'hui, mon script de gestion de stock tourne sans problème sur mon ordinateur portable fatigué, posé comme toujours sur la table en formica, une tisane tiédissant à côté du clavier, mon carnet de brouillon et ses post-its juste à côté, sous le plafonnier jaune un peu trop franc de la cuisine du quotidien — toujours pas de bureau dédié chez moi, juste ce coin qui sert à tout. Entre deux batailles avec les accolades, j'ai aussi apprivoisé d'autres bases : une variable, c'est une étiquette qu'on colle sur une valeur pour la retrouver plus tard, et l'indentation, ce sont ces espaces en début de ligne qui font hurler Python si on les oublie. J'ai commencé à écrire de petites fonctions pour ne plus recopier trois fois le même bout de code, et à importer des modules tout faits plutôt que de réinventer la roue à chaque script. Les messages d'erreur, eux, ne me font plus le même effet qu'au début — je sais au moins où regarder en premier.
Perrine, une lectrice de Bordeaux abonnée depuis mes tout premiers billets, m'a écrit récemment qu'elle avait tenté d'expliquer les dictionnaires à son conjoint et que la conversation avait fini en cacophonie totale — elle en parle encore avec un humour résigné, ce ton qu'on prend quand on a compris qu'expliquer le code à quelqu'un d'autre est un art à part entière. Ça m'a fait sourire, parce que je me reconnais complètement là-dedans.

Ce qui reste flou pour la suite
Pour plus tard, quand les réseaux m'intrigueront davantage que la syntaxe, j'ai repéré une Formation Cisco que je garde de côté sans m'y précipiter. Pour l'instant, une question me trotte encore dans la tête sans réponse claire : comment on range un dictionnaire à l'intérieur d'un autre dictionnaire sans que tout devienne un nœud illisible dès la troisième ligne ? Je n'ai pas encore trouvé la bonne façon de me l'expliquer à moi-même.
Si vous débutez aussi et que vous cherchez un point de départ sans vous noyer sous le jargon, je continue de recommander la Formation au langage Python — c'est ce qui a transformé mes gribouillages de carnet en lignes qui tiennent debout. On se retrouve au prochain chapitre, tisane refroidie comprise.