- Formations
- conversion_path Parcours & Formations
- science Projets
- data_object Exercices de code
- psychology Exercices IA
- quiz Quiz
- Articles
- rss_feed Blog
- sort_by_alpha Glossaire
- menu_book Guides
- help_center FAQ
- media_link Ressources
- Communauté
- groups La communauté
- forum Questions
- live_tv Mentorats
- science Projets mensuels
- Formations
- conversion_path Parcours & Formations
- science Projets
- data_object Exercices de code
- psychology Exercices IA
- quiz Quiz
- Articles
- rss_feed Blog
- sort_by_alpha Glossaire
- menu_book Guides
- help_center FAQ
- media_link Ressources
- Communauté
- groups La communauté
- forum Questions
- live_tv Mentorats
- science Projets mensuels
Inscris-toi
(c'est gratuit !)
Un compte est nécessaire pour participer aux discussions.
Créer un compte person00:00:00 :Dans cette partie, je vais vous montrer une astuce qui permet de créer des dictionnairesqui sont un peu plus puissants que le dictionnaire Python de base.
00:00:07 :Par exemple, dans cet exercice, on a un mot qui est anti-constitutionnellementet on va essayer de compter le nombre de fois qu'apparaît chaque lettre dans le mot.
00:00:16 :On va avoir comme clé la lettre et comme valeur le nombre de fois qu'elle apparaît.Là, je le fais avec un dictionnaire de base,un dictionnaire Python que je déclare ici vide grâce à ses accolades.
00:00:29 :Et si j'essaye de boucler à travers chaque lettre sur le mot pour ajouter 1 à chaque fois qu'on a la lettre,donc là, je mets la lettre en clé et j'ajoute 1 comme valeur,cet exemple-ci ne va pas fonctionner.
00:00:40 :Si j'exécute le script en faisant Ctrl-B, vous voyez qu'on se retrouve avec une erreur.L'erreur, c'est une erreur de type KeyError, puisqu'il nous dit que la clé A n'existe pas.
00:00:50 :Là, on essaye d'ajouter 1 à une entrée dans le dictionnaire qui n'existe pas,et donc on a cette erreur.Alors, ce qu'on pourrait faire, sans passer par les défauts le dict,c'est faire ce qu'on a ici,c'est-à-dire qu'on aurait toujours le même mot ici,et cette fois, quand on va boucler dans notre mot,
00:01:07 :si la lettre n'existe pas,donc là, on essaie de récupérer la lettre dans le dictionnaire avec la méthode Get,donc si ça n'existe pas, la méthode Get va nous retourner None,donc si cette clé n'existe pas,on va initialiser cette clé,donc la clé qui va correspondre dans le cas ici à A,
00:01:26 :et on va la mettre égale à 1.Si la clé existe, on va la récupérer et incrémenter 1 ici.Donc là, si j'exécute le script, vous voyez que ça fonctionne,on a bien A qui est présent une fois,on a le E qui est présent trois fois,donc ici, ici et ici, etc.
00:01:42 :Donc là, c'est vraiment ça qu'on fait,c'est que la première fois qu'on rencontre une lettre,si elle n'existe pas dans le dictionnaire, on l'initialise ici avec un égal,et si elle existe, on la récupère et on l'incrémente de 1.
00:01:53 :Donc ça fonctionne, mais vous voyez que c'est pas forcément très élégant,ça fait une structure conditionnelle ici If Else juste pour ça,donc c'est pas vraiment efficace,alors que si on regarde cette fois-ci comment faire avec les default dict,et bien vous allez voir que ça va être beaucoup plus élégant.
00:02:09 :Donc on se retrouve encore une fois avec le même mot,sauf que cette fois-ci, plutôt que de créer un dictionnaire de base,je crée un default dict,et ce qu'on va indiquer ici,c'est la valeur par défaut qui va créer si une clé n'existe pas.
00:02:22 :Donc là, on lui indique un int,donc c'est-à-dire que si la lettre qu'on lui indique n'existe pasdans les clés de notre dictionnaire,il va initialiser une valeur par défaut qui va être égale à un integer par défaut,donc qui va être 0.
00:02:36 :Donc là, ce que ça va nous permettre de faire,c'est directement faire ce qu'on avait au début,donc avec le premier exemple ici,sauf que cette fois-ci, au lieu d'utiliser un dictionnaire de base,on va utiliser un default dict,et donc ce que ça nous permet de faire, c'est que dans cette même ligne ici,
00:02:50 :on va à la fois initialiser la valeur si elle n'existe pas,et ajouter 1 à cette valeur.Donc là, j'exécute le script,et vous voyez qu'on se retrouve avec le même résultat que ce qu'on avait précédemment,avec notre if et notre else,sauf que cette fois-ci, ça tient en une ligne.
00:03:04 :Donc vous voyez que c'est vraiment très pratique,et là, on peut lui passer tout ce qu'on veut.Si on veut lui passer, par exemple, une liste à la place d'un integer,on peut très bien le faire,sauf que là, cette fois-ci, si j'exécute le script,donc là, je vais avoir une erreur,
00:03:17 :puisqu'il me dit que je ne peux pas ajouter,je ne peux pas en fait ajouter plus ou égal comme ça à une liste,donc là, il va falloir que je change pour un append,et cette fois-ci, vous voyez que ça va marcher,sauf que plutôt que d'additionner 1,plutôt que d'ajouter 1 avec le plus ou égal,
00:03:34 :on va tout simplement ajouter à notre liste.Donc là, vous voyez que si la clé n'existe pas par défaut,il va créer une liste vide,et là, on va pouvoir ajouter 1 dans cette liste.
00:03:43 :Donc là, quand on a un E, par exemple,on va se retrouver avec 3 fois la valeur 1,puisque notre E, ici, apparaît 3 fois dans le mot anticonstitutionnellement.
00:03:51 :Donc vous pouvez vraiment lui passer tout ce que vous voulez ici,c'est juste de bien faire attention, comme vous voyez ici,d'utiliser la bonne fonction.
00:03:57 :Si, par exemple, on lui passe un dicte ici,le append ne marchera pas.Si on exécute le script, on se retrouve là encore avec une erreur,donc là, il faudra mettre 1 égal pour assigner à notre dictionnaire,et donc là, si j'exécute, vous voyez qu'on se retrouve avec,cette fois-ci, une clé valeur.
00:04:13 :Donc là, on écrase à chaque fois la valeur,donc c'est sûr que pour chaque, même si on a 3 fois la lettre,on va toujours se retrouver avec 1,puisqu'on fait juste écraser la valeur qui était précédemment associéeà la clé A, ou C, ou E, etc.
00:04:27 :Donc voilà pour les default dictes,et on va voir tout de suite un autre dictionnairequi vient du même module, donc le module collections,qui s'appelle le ordered dicte,qui nous permet de faire des dictionnaires ordonnés.
00:04:39 :Alors les ordered dictes, vous allez voir que c'est très très simple,c'est plus facile que les default dictes,tout ce que ça va faire, tout simplement,c'est nous permettre de créer un dictionnaire,sauf qu'il va garder l'ordre dans lequel on ajoute les clés.
00:04:51 :Donc là, si j'utilise ici, vous voyez, un ordered dicte,là, je n'ai pas besoin de lui passer quoi que ce soit,il faut juste mettre les parenthèses,alors bien faire attention, le ordered dicte,il a une majuscule sur le haut et sur le D,alors que le default dicte, il a aucune majuscule,
00:05:06 :donc bien faire attention à ça.Si je crée un ordered dicte ici,là, j'ajoute des clés 1, 2, 3, 4 et 5,donc si je print les items, on voit bien qu'ils se retrouventdans le même ordre que je les ai ajoutés,donc là, on a bien 1, ensuite 2, 3, 4 et 5.
00:05:20 :Si j'utilise un dictionnaire de base,donc la particularité d'un dictionnaire, c'est que de base,ils ne sont pas ordonnés,donc là, j'ajoute les clés dans l'ordre 1, 2, 3, 4, 5,mais si j'exécute le script, vous voyez que cette fois-ci,on a quelque chose de complètement désordonné,donc on se retrouve avec 4 en premier,
00:05:36 :ensuite 1, 3, 2 et finalement 5.Donc l'avantage du ordered dicte, c'est que ça garde l'ordre,donc si vous avez vraiment besoin,que vous savez dès le début que vous avez besoinde créer un dictionnaire qui va être ordonné,vous pouvez directement l'initialiser avec un ordered dicte.
Ce n'est pas fini...
✋
Tu as complété % du parcours 🔥
Termine l'intégralité de la formation pour pouvoir débloquer ton attestation de réussite.