- 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
Deviens membre Premium magic_button
Débloque cette session en devenant Membre Premium 🚀
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 des exemples, cette fois beaucoup plus concrets,de l'utilisation que personnellement je ferais de lambda,donc dans un cas comme celui-ci par exemple,où on doit récupérer l'extension d'une liste de fichiers.
00:00:13 :Donc là, j'ai une liste de fichiers avec différentes extensions,et mon but, c'est à l'aide de la liste en compréhension ici à la fin,de récupérer uniquement l'extension ici en bouclant à travers ces fichiers.
00:00:24 :Alors, sans les lambdas, si on fait directement l'opérationà l'intérieur de la compréhension de liste,vous voyez que ça fait une très longue ligne de commandes ici,puisqu'on va avoir besoin de faire un split extension,de faire un split, de récupérer l'index "-1",donc le dernier index de ce qu'on va récupérer avec le split et le split x,
00:00:43 :ensuite de faire un replace pour remplacer le point iciqu'on va récupérer par rien, pour récupérer uniquement l'extensionet non le point avec l'extension.Donc vous voyez que ça fait trois opérations iciqu'on a besoin de faire directement sur le F,donc le fichier sur lequel on boucle dans notre liste fichier.
00:01:01 :Donc ça fait beaucoup de codes, ça fait une ligne qui est longue,qui est trop longue en fait en programmation,puisque on n'arrive pas vraiment à lire ce qui se passe ici,alors que si on utilise les lambdas,vous voyez que ça devient beaucoup plus lisible.
00:01:13 :Donc c'est sûr qu'on a plus de lignes de code ici,mais c'est beaucoup plus lisible d'avoir des fonctions ici très claires,donc qui tiennent sur une ligne grâce à la fonction lambda ici,et à la fin d'avoir tout simplement une fonctionque j'ai appelée dans ce cas-ci process,et donc qui va processer chacun des fichiers
00:01:29 :à travers lesquels on boucle dans notre liste.Donc là ce que je fais, c'est que je déclare déjàune fonction lambda qui s'appelle getFichier,donc qui va me récupérer uniquement ici le nom du fichier,donc qui va enlever tout le projet, donc hProject etc.
00:01:44 :Donc on va se retrouver uniquement avec fichier 1.py par exemple.Ensuite je vais récupérer uniquement l'extension,donc là dans fichier 1.py je vais récupérer uniquement le .py.
00:01:54 :Ensuite j'ai la fonction delPoint qui va supprimer le point,donc là c'est le fameux replace.Donc à partir de ça ici je vais avoir le .py,
00:02:03 :donc je vais tout simplement supprimer le pointpour me retrouver uniquement avec cette fois-ci l'extension.Tout ça je le mets dans une fonction process,donc là vous voyez que c'est comme un wrapper par-dessus tout ça,donc j'emballe toutes ces fonctions que j'ai définiesdans une autre fonction que j'appelle process.
00:02:19 :Donc là on voit encore mon fichier que je passe en argument,donc f ici, sur lequel j'applique ma fonction getFichier.Tout ça j'applique le getExtension par-dessuset encore une fois tout ça j'applique le delPoint par-dessus.
00:02:34 :Donc à chaque fois je vais passer le résultat de chaque fonction.Donc là je vais récupérer uniquement le fichier,sur ce que ça va me retourner, donc sur le nom du fichier uniquementj'applique ma fonction getExtension,donc là je vais me retrouver juste avec l'extension avec le pointet par-dessus tout ça j'ajoute ma fonction delPoint.
00:02:50 :Donc vous voyez ici 4 lignes, ça fait 4 lignes de plus c'est sûr,mais au moins c'est très clair qu'est-ce que chaque fonction fait,qu'est-ce que le process fait ici,et on se retrouve avec du code beaucoup plus lisible ici à la findans notre compréhension de liste.
00:03:03 :Donc ça c'est un exemple très concret dans lequel personnellementje serais amené à pouvoir utiliser des lambdas,donc quand on manipule des fichiers comme ceci par exemple.
00:03:10 :On va voir aussi tout de suite un autre exemple avec la fonction sortdans laquelle on est cette fois-ci quasiment obligé d'utiliserles fonctions anonymes.
00:03:19 :Donc dans cet exemple ici j'ai une liste d'utilisateursqui contient des tuples,le premier élément du tuple c'est le numéro de l'utilisateur,donc user 1, 2, 3, 4, 5,et le deuxième élément du tuple c'est le prénom de l'utilisateur.
00:03:31 :Donc ici on pourrait vouloir trier cette liste avec le numérod'utilisateur ici, mais ça peut être aussi pratiquede le trier par ordre alphabétique avec le prénom ici,donc le deuxième élément du tuple.
00:03:42 :La fonction sort ici elle accepte ici en paramètreun paramètre qui s'appelle keydans lequel on va pouvoir lui passer une fonction.Donc là on va lui passer une fonction lambdaet ce qu'on va lui dire c'est qu'on veut récupérernon pas l'élément 0,donc si on ne mettait pas ce paramètre key ici,
00:03:59 :donc je vais l'enlever pour vous montrer,par défaut il va prendre le premier élément du tuple,donc là on va trier notre liste en fonction du numéro de l'utilisateur,donc là on se retrouve avec user 1, user 2,user 3, 4 et 5.
00:04:11 :Donc nous ce qu'on va lui dire c'est queplutôt que d'utiliser le premier élément comme ceci,le premier élément étant 0,on va utiliser le deuxième, donc 1,et donc en lui spécifiant ça dans le paramètre key ici,donc cette fonction, il va appliquer cette fonctionà chaque tuple ici,
00:04:28 :et plutôt que de trier en fonction du premier élément,on va trier avec le deuxième,donc l'indice 1 ici.Donc là si j'exécute la fonction,vous voyez qu'on se retrouve en ordre alphabétique,donc là c'est l'utilisateur numéro 4 cette fois qui est en premier,puisqu'il s'appelle Arnaud, donc ça commence par un A,
00:04:43 :ensuite on a Bernard, Camille, Didier et Étienne,donc A, B, C, D, E, ça marche parfaitement,et donc vous voyez qu'on a réussi à trier notre liste,non pas avec le premier élément du tuple,mais avec le deuxième.
00:04:55 :Donc là encore, quelque chose que vous allez voir très très souvent,j'ai jamais vu autre chose que çautilisé dans le paramètre key de sort,je ne sais même pas si on pourrait en faitjamais essayer d'utiliser une fonction,j'imagine qu'on pourrait tout simplement déclarer une fonction iciqui s'appellerait tri par exemple,
00:05:11 :dans laquelle on mettrait notre valeur ici,et on retournerait x1 comme ça,donc j'imagine que ça fonctionne, on va essayer,j'essaye ensemble avec vous,et on regarde ce que ça donne.
00:05:23 :Donc là effectivement vous voyez, sans surprise,ça fonctionne, puisque une fonction lambdac'est la même chose qu'une fonction, c'est justeune syntaxe différente, donc sans surprise ça fonctionne,vous voyez j'apprends des choses en même temps que vous,mais là voilà, le problème c'est queon a deux lignes qui ne servent pas à grand chose,
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.