Session du 23 septembre 2024 à 21h00
Structures de Données
TOSA & Certifications
Deviens membre Premium magic_button
Cette session de mentorat est réservée aux membres Premium. Rejoignez-nous pour accéder à toutes les rediffusions des sessions de mentorat !
Premium
- check +100h de formations
- check +180 exercices de code
- check +100h de mentorats en rediffusion
- check 20 projets
- check Mentorats groupés hebdomadaires
- check Support individuel avec nos mentors
Session de mentorat TOSA
Dans cette session on passe en revue les méthodes de tri en Python. On va voir notamment la différence entre sort et sorted, le tri personnalisé avec une clé, les fonctions lambda ou encore l'utilisation de itemgetter et de max.
00:00:00 :C'est bon, ça enregistre.Est-ce que juste, il y en a qui ont des questions avant rapidement ou pas, avant de commencer la séance, la session ?
00:00:10 :Ou pas ?Non, pas qu'ils me viennent.Officiellement ?Ok. Je vais partager mon écran. J'ai mon écran du bac qui est ouvert, ok.Je vais grossir un peu peut-être.
00:00:32 :Là, on va commencer par aller de sortes et sortes-aides.On va désactiver le copilote.Est-ce que vous avez tous la différence entre sortes et sortes-aides ou pas ?
00:00:59 :Je sais qu'il y en a un qui renvoie un item trié, l'autre qui juste trie l'item.Mais je me mélange toujours entre les deux, en fait.
00:01:10 :Alors, sortes, en fait, ça modifie la liste d'origine.C'est une méthode, ce n'est pas une fonction.Par contre, sortes-aides, lui, il ne modifie pas la liste d'origine.
00:01:28 :Ça va en renvoyer une nouvelle.Ok.Et là, on est sur une fonction.En gros, avec des exemples.Donc là, par exemple, on va avoir...
00:01:45 :Je n'ai pas une liste...J'ai une liste toute faite, là.Ah non, je n'ai même pas où ça va avoir repris.Donc là, on va avoir banane, je ne sais pas, des pommes,cerise, allez, hop là.
00:02:01 :Date.Ici, si je fais fruit.sort,et que je fais un print de fruit,vous allez voir, on va avoir des subtilités après.Donc là, il m'a bien trié, j'ai bien banane, cerise, date, pomme.
00:02:27 :Banane, donc là, ça m'a mis la cerise à la bonne place.Date, ça me l'a remis.Après, en dernier, j'ai bien pomme.Par contre, si je fais toujours...
00:02:35 :Donc là, si je fais un print de fruit,j'ai bien la liste d'origine qui a été modifiée.Par contre, si je ne fais pas ça,et que je fais un sort-tête, par exemple,donc je vais avoir...
00:02:54 :On va faire ça avec des nombres.Nombre, hop, on va s'en mettre un.6, voilà.Ici, si je fais, vous l'appelez comment, nouveau,c'est égal à...
00:03:10 :Donc là, j'utilise la fonction nombre.Si je fais un print de nombre,la liste, elle n'a pas changé.Par contre, si je fais bien nouveau...
00:03:26 :C'est normal, j'ai mis dans l'ordre, c'est bête.Je vais mettre un 6.Ouais, un tac.Voilà, là, il me l'a bien trié.Par contre, si je mets un nombre ici,on est d'accord qu'on a bien notre.
00:03:42 :On voit bien.Mais si je fais bien nouveau,voilà, là, il m'a trié,et donc ma liste d'origine, en fait,elle n'est pas modifiée.Alors, par contre, je sais que moi,je me suis fait avoir,il y en a plein qui se font avoir.
00:03:59 :Si vous faites un truc genre nouveau,on va recommencer nouveau,ça va être égal à...Vous devinez ce que ça fait ou pas ?Ça n'envoie rien.
00:04:12 :C'est ça.Qu'est-ce que je me suis fait avoir au début ?Non, parce que là,je ne sais pas si je peux l'afficher.Voilà, là, on voit sûrementque ça n'envoie rien.
00:04:26 :Donc ça, c'est OK.Donc voilà, ça, c'est vraiment des chosesbasiques avec sortes et sortaines.Est-ce que ça, ça va pour tout le monde ?
00:04:38 :Ouais.OK.Maintenant,on va utiliser...J'ai utilisé quoi, du coup ?OK, on va s'amuser,on va le faire avec une KEY, je pense.Est-ce que vous l'avez déjà utiliséavec le paramètre KEY ou pas ?
00:04:59 :Une fois ou deux.Je dois avoir un exemple de...Pour embêter.Ah oui, ça y est.OK.Donc là,j'ai un exemple de listeavec des tuples.
00:05:24 :On va vouloir trier par exemplepar le deuxième élément.Du coup,est-ce quevous avez une idée de comment on peut faire ça ?Passer la liste et puis en deuxième argumentKEY 1,comme un dictionnaire.
00:05:44 :Enfin, KEY index entre grosser1 ou KEY égale 1, un truc comme ça.Alors, avec une lambda,comme ça,ça va être exactement, c'est pas loin,en utilisant la lambda,en fait.
00:05:58 :Et en fait, après,si tu...Tu l'as bien trié par le deuxième élément.Donc là,avec une lambda, ça marche très bien.Et c'est assez courant de le voir, d'ailleurs.
00:06:12 :Christopher, juste savoir,si là je connais ton niveau.Et Christopher, tu as un niveau...Comment tu es assez avancé ?T'es débutant ? T'es moyen ?
00:06:23 :Je dirais moyen.Ouais.T'étais déjà à l'aise ?Ça va, je comprends.Ouais, t'étais déjà à l'aise avec ça ?Oui, oui, oui.OK. Pas de problème.
00:06:37 :C'est parce que là,c'est des petites spécificitésqui peuvent tomber au TAUSA, c'est pour ça que je reviens dessus.Oui, oui.Toi, si là, ça va, c'est bon.
00:06:47 :Oui, ça va, ça va, Gop, ça va.OK.C'est spécifique à savoir, donc ça,vous pouvez le faire avec une lambda,parce que c'est pas impossible, si ils vous posent la question au TAUSA,justement,comment faire pour ce genre de cas,mais il y a d'autres possibilités de le faire.
00:07:05 :Donc là,je le montre après,donc là, j'ai déjà fait avec ma lambda, OK.Donc là, j'ai trié le deuxième élément de chaque liste.Par contre, il y a une chose à savoir aussi,ça va être rigolo, ça, c'est avec uneliste.
00:07:21 :Je vais avoir 4A,je vais avoir 2B,voilà ça.Je vais avoir 2C,voilà.Ici,oula,je savais même pas que c'était unefonction qui existait.
00:07:49 :Donc je vais l'appeler autrement,je vais l'appeler, hop.Je vais la laisser appeler vite.Hop.OK.Du coup, maintenant, ce qu'on peut faire,donc là, est-ce que vous connaissezce que va faire du coup ici, comment ça va trier ou pas ?
00:08:09 :Si vous faites ça.C,C, B, B, A, A.Allez-y, je vous laisse.Vous pouvez me le mettre dans le commentaire si vous voulez du...
00:08:27 :Vous allez voir qu'il y a des petites choses pareillesqui ne font pas de se faire avoir.On croit que ça fait, mais que ça ne fait pas en réalité.
00:08:37 :Alors,il y a celui-là,Stéphane, celui-là, vous avez dit quoi du coup ?Alors, Stéphane, C, B, B, A,B, A, OK.Christopher, celui-là, si vous avez une idée.
00:08:55 :On veut...Là, j'ai utilisé sorted sur la liste qu'il y a là.Et le résultat que ça te sort du coup.D'ailleurs, mon exemple n'est peut-être pas le meilleur, tiens.
00:09:18 :Si je vais faire ça plutôt ça.Allez.Alors,si je fais ça,si je fais ça,si je fais ça,en gros,j'ai fait deux prints, je ne sais pas.
00:09:41 :Ah oui, non, je fais une connerie, c'est normal.Hop, excusez-moi.La liste, compris.Voilà, exactement, c'est pour ça que je parlais.La liste n'était pas un paramètre.
00:09:57 :Ah, désolé.En gros,je ne t'avais pas entendu du coup celui-là,parce que moi ça avait coupé.Du coup, quand vous faites ça comme ça,ici, vous allez trier, en fait,par l'ordre alphabétique.
00:10:14 :Et, je sais qu'il y a déjà eudes exos, des fonctions,une utilité où, en fait,j'avais une liste de chaînes de caractères comme ça.
00:10:24 :Et le but, en fait, c'est de récupérerjustement les chaînes de caractèresla plus courteà la plus longue, ou la plus longue à la plus courte.
00:10:34 :En fait, il y a une autre...Il y a autre chose qu'on peut faire ici.En fait,quand vous faites ça,du coup, il va trier par ordre alphabétique.
00:10:48 :Mais, est-ce que vous savez comment, du coup,on peut trier par la longueur ?Peut-être avec uneX et la longueur de X.Ok, et celui-là ?
00:11:04 :Avec un lambda expression comme l'autre.Alors, il y a encore plus simple.Ok.Et voilà, là j'ai bien cité le plus petit en premier,AA en deuxième et le plus long B en dernier.
00:11:21 :En fait, vous avez juste à envoyerdedans la fonction lenà ket en fait, ça va vous la trier comme çadu plus petit au plus grand.
00:11:33 :Ça marche.Voilà.Ça c'est plus simple.Ouais, mais c'est...On était pas si loin que ça quand même.Ouais, ouais, c'était pas mal du tout.
00:11:45 :On peut inverser l'ordre, du coup,s'il y a un paramètre.Allô, allô ?Vous m'entendez ?Ouais, ouais.J'ai demandé si on pouvait inverser l'ordre.
00:11:59 :Alors, tu peux inverser l'ordredu coup, avecle reverse.Après, tu peux très bien faire un...Le paramètre,il est là.Voilà, tu as le reverse qui est là.
00:12:16 :Je me souviens plus de la position,mais c'est bien ici. De toute façon,on peut en mettre où on veut, c'est-à-dire...Mais je ne savais plus s'il appelait reverse, reverse, j'avais un doute.
00:12:24 :Voilà. Ok, ok.Ah.Alors, attendez, quelqu'un...Marcel.J'attends que ça rejoigne.Ça galère, on dirait. Ah, c'est bon.Salut, Marcel.Salut, salut.Du coup, oui, c'était une bonne questionparce que je ne l'avais pas prévu, mais oui.
00:12:50 :Vous pouvez très bien inverser avec un reverse égale to en paramètre, ici.Donc, voilà. On a vules cas oùon peut utiliserune lambda.
00:13:03 :Ici, on trie park length si on veut avoirle tri par la longueur.Sinon, c'est par ordre alphabétique.Et on peut faire un reverse égal à sou.
00:13:13 :Voilà, pour ça.Du coup, autre choseà savoir.Je suis désolé, mon navigateur, c'estune horreur quand j'ai deux onglets d'ouvert.C'est...Avec un Google,c'est une grosse horreur.
00:13:29 :Est-ce qu'il y en aqui connaissent...Je n'ai pas vu si j'ai des messages dans le chat.Ah, c'est bon.Hop là.Est-ce que vous connaissezitem... Merde.
00:13:43 :Item getter ou pas ?Entendu parler, sans plus.Non, je n'ai pas utilisé.Je n'ai pas utilisé.OK. Tout à l'heure, on a trié une liste avec une lambda.
00:13:55 :On avait le cas oùon a trié quoi ?Ah oui, on avait une liste de tuples.J'ai en trié par le deuxième élément.Donc là, j'ai une liste.
00:14:05 :On peut très bien la retrier.C'est même plus que tout à l'heure.Le deuxième, le troisième élément, bref, peu importe.Donc si je fais...Ah oui, mais tout à l'heure,je dis une bêtise.
00:14:21 :Je ne comprenais pas pourquoi il m'importait mes modules.Parce que j'ai d'autres modules que moi que j'ai créés.Ah oui, j'avais tapé un nom.C'est bizarre, je ne connaissais pas ce module.
00:14:29 :Mais en fait, c'est le mien. D'accord. Génial.Je ne savais pas qu'on pouvait le faire directement avec ses propres modules,avec PyCharm. Je ne l'avais jamais fait.
00:14:35 :Je comprends mieux maintenant.Putain, c'est un truc de fou. Bon, OK.L'âge lambda, par exemple.Donc ici,on peut faire un sorthead comme on a fait tout à l'heure.
00:14:45 :On a nos personnes.Et comme on a vu tout à l'heure, si je veux trier parl'âge,on peut le faire avec la lambda.Pour vous, c'est bon ça.
00:14:55 :Comme on l'a fait tout à l'heure.Ici, je peux faire une lambda X.Donc là,je décrois la lambda X.Et là, si je fais unprint de...
00:15:13 :Donc là, je trie bien par l'âge.Il a 22 ans, 25 ans, 28 ans, 30 ans,35 ans.Sauf que moi, en fait,il y a le module natif, doncOperator.
00:15:27 :Donc vu que c'est natif, on pourrait très bienl'avoir au Tosa. Après, je ne sais pas si quelqu'un l'a déjà eu.Je n'en sais rien, mais on teste.
00:15:33 :Mais ça peut très bien arriver.Et en ce moment, je suis en train de bossersur un projet de Django pour l'entreprise.Et en fait,il m'avait utilisé...
00:15:43 :Il m'avait fait un sort comme ça.Et ici, il n'avait pas utilisélambda, OK.Et il m'avait fait un truc.Donc, on va refaire le même.
00:15:53 :Je vais l'appeler BIS.C'est écrit dans la BIS.Et là, vous allez voirque ça peut être intéressant.Ils m'ont fait un truc.Ils ont utilisé Itengetter.
00:16:11 :Un.Et j'ai exactementle même résultat.Et donc, vous voyezqu'on peut utiliser la fonction Itengetterqui est considérée commetrès performante.De ce que j'ai pu lire.
00:16:29 :Et elle est native à Python.Et en plus, en lecture de code,ça paraît quand même beaucoup plusévident finalement.C'est plus simple.Bon, les lambdas, j'évite en général.
00:16:41 :J'ai eu à utiliserde la lambda pour le Tosa, mais c'est pour des défautsdictes.Ça, les défauts dictes, il faut les connaître parce que j'ai eudeux questions de suivi.
00:16:51 :Donc, c'est une chose qu'on pourra voir si voussoumettez plus.Mais voilà. Donc là, en fait, avec Itengetter,on a fait exactement la même chose.
00:16:59 :Et on pourraittrès bien le faire par le deuxièmeélément. Enfin, peu importe.Bon, là, je ne trie plus parh, je trie par taille.
00:17:09 :Mais on voit que c'est pareil.On va du plus petit au plus grand.C'est pareil. Si vous voulez inverser,on inverse. Et voilà.C'est bon pour toi ?
00:17:21 :Super, c'est bon.Ok.Est-ce que c'est possiblede faire un tri complexe ?C'est-à-dire que, par exemple,je ne sais pas, bon, ça n'aurait pas vraiment de sens, maissi tu en avais deux qui avaient lemême âge, tu décides quele facteur suivant,par exemple, c'est la taille.
00:17:45 :Avec Itengetter ?Attends.Sur le cas où ils auraient...Si, par exemple, il y en avait deux qui avaient le même âge,on déciderait aprèsd'y trier par rapport à leur taille.
00:18:03 :Au hasard, quoi. Ça n'a pas d'intérêtparticulier, mais c'est juste pourla fonctionnalité.Comme ça, nativement,si,parce qu'avec une lambda,si, avec une lambda, tu peux.
00:18:21 :On va enlever le reverse.En fait, ça reviendrait au même.Est-ce que j'en ai, par exemple,là, on va dire qu'on tripar le même âge,donc on va dire que lui,je ne sais pas, il a, par exemple,30 ans.
00:18:37 :Ils n'ont pas la même taille.Ici,si tu as...La lambda, c'est facile, en fait.La lambda, normalement,c'est facile, mais en fait, non, c'est pas si facile que ça.
00:18:49 :C'est parce que...Il doit me manquerdes parenthèses.Voilà.Là, on s'intéresse au premier.Ils sont où,mes deux, là, qu'on a mal ?Troisièmeet quatrième position.
00:19:09 :Merci.On a bien1m65,1m80.Donc là, on est bon.Ils l'ont bien inversé.Est-ce qu'on pourrait inverser, du coup,pour être sûr ?Voilà, c'est ça que je voulais faire.
00:19:33 :Putain, je me suis mis à perdre.Normalement, celui de 1m80 doit passer avant le 1m65.Voilà, c'est ça, c'est bon.Donc, tu peux.Avec une lambda, tu peux, c'est sûr.
00:19:43 :Il n'y a pas de problème.Je suis moins familier, je viens de regarder.En fait, avec l'item getter,tu peux faire, du coup,on fait pareil, un,deux, je pense que c'est possible,ou pas...
00:19:59 :Tu peux soulignerl'item getter en haut de la définitionde la fonction, peut-être.Tu peux repasser un truc bleu dedans,c'est possible.Si.Ah, ouais.
00:20:17 :Il ne faut plus enlever le tube,il faudrait le mettre en lisse.Ouais, ouais, ouais.Il me le souligne pour rien, parce qu'en fait, c'est possible.
00:20:25 :Donc, ça veut dire qu'on peut...Ici, j'ai bien mis 1m65,1m80.Donc, ça, c'est bon.On peut...Ah, putain, mon navigateur, il déconne.Regarde si je peux faire un truc.
00:20:47 :Avec l'item getter, comment je...J'ai un doute.Ouais, non, si, en fait,ça me paraît plus simple.J'avoue que là, pour les deux...Je ne pense pas qu'avec l'item getter,on pouvait.
00:21:03 :Donc, ça fonctionne.Et après, pour utiliser reverse, ça fonctionne aussi.Il n'y a pas de problème.OK.Donc là, il y a deux façons de faire.
00:21:15 :Du coup, l'item getter et le lambda.Par contre...Qu'est-ce que j'allais dire?Le item getter,je ne pense pas qu'on puisse...Je cherchais lequel me paraîtrait.
00:21:31 :Mais bon, après, les deux, là, ça va.Dans ce cas-là, on serait dans le même.Donc, ouais.Moi, perso, je préfère l'item getter.Ce n'est pas pour vous, mais...
00:21:41 :C'est plus lisibleen lecture de code, quoi.Ouais, ouais, ouais.J'étais en train de me poser des questions.Je préfère l'item getter, en général.Depuis que je l'ai découvert,je l'ai découvert il n'y a pas longtemps.
00:21:57 :Autre choseque je voulais vous montrer.Je me suis noté un petit plan.Je l'ai sorti... Ah ouais, OK, c'est ça.Vous avez l'habitude...Enfin, rien de fou, mais Max,vous avez l'habitude?
00:22:11 :Ouais, c'est la valeur la plus hautedans une liste.Alors, je vais vous montrer un truc.Oui?Juste pour...Si tu pouvais...sur le...Si tu pouvais nous envoyer, quoi.
00:22:27 :Sans effacer, mettre quelque part.Ouais, ouais, t'inquiète,je prépare un truc, ouais.Je vais préparer quelque choseque je vous partageraijuste après.Il n'y a pas de problème.
00:22:41 :Pareil, avec Max,j'ai découvert quelque choseque je ne pensais pas que c'était possible.Enfin, que je ne savais pas du tout, en fait.Qui est super intéressant.
00:22:51 :Imaginez, vous avez une classe Product.On va surcharger...Enfin, on va créer...On va définir notre method init.Donc, dedans.Ce qu'on va faire.Donc, je vais avoir mon self.
00:23:05 :Je vais avoir le nom.Alors, je ne sais pas si vous le faites tous.Le typage.Ça vous va, le typage?Ouais, ça va.OK.
00:23:17 :J'ai mon truc qui sonne.C'est pas grave.OK.Donc, je vais avoir le nom du produit.Il y a quelqu'un qui arrive.Je crois qu'on est à 6 maintenant.
00:23:29 :Tu vois quelqu'un?Je ne vois personne dans la file d'attente.Ah, c'est parce que c'est moi et je compte pour 2avec la présentation.Du coup, on va avoir un prix.
00:23:41 :Le prix, ça va être un float.Et on va avoir un discount.Donc, on va avoir notre promo.C'est un float.0.Voilà.Ensuite.Donc, name, ça va être égal à name.
00:23:57 :Self.price,ça va être égal à price.Je dois avoir du copilote activé pour le float.Discount, c'est égal à...Ah, c'est 10.C'est bon.La magie encore et n'importe des trucs.
00:24:13 :Ça me saoule par contre.Avec PyCharm, des fois...Donc, j'ai mon discount qui est là.Et on va avoir une méthode qui va permettrede récupérerle prix.
00:24:27 :Le prix final.Et donc, le prix final, ça va êtrepricefois, c'est 1moins...Voilà, c'est ça, ça revient à diviser.Voilà.Et donc, on va avoir une liste de produitsmaintenant.
00:24:51 :On va avoir plusieurs instances, du coup.Putain, ça c'est chiant.Hop là.Product, du coup, c'est...Tac. Donc, j'ai ma classeet là, je vais avoir par exemple la pomme.
00:25:03 :Je suis en train de vous direoù je vais vous emmener, mais vous allez voir.Je vais avoir du coupun deuxième product. Putain, ça
00:25:13 :c'est chiant.Hop là.Voilà. Donc, un deuxième product.Où je vais avoir...On reprend nos produits de tout à l'heure.Banane.On va la mettre à combien ? On va la mettre à
00:25:27 :0.5.Et on va avoir un discount par exemple à 0.1.Et un dernierproduct.Ici, on va avoircerise. On va la faireà 0.5.
00:25:41 :Et un discount à 0.2.Alors.Est-ce que vous savez, du coup,qu'il est possiblede récupérerl'articleau niveau du prixle plus élevé par rapport à la méthode.
00:26:05 :C'est-à-dire qu'en gros, on va récupérerle prix le plus élevé par rapport à la...Avec le discount compris dedans.Par rapport à DeathGet Final Price.
00:26:15 :On veut récupérer le produitavecce prix le plus élevé.Est-ce que vous savez comment on peut faire ou pas ?Non, tu peux répondre à la question.
00:26:27 :C'est obligable. Je n'ai pas...En gros,ici, Get Final Price, ça va êtrele prix de l'article.Mais on va luiappliquer une promotion.D'accord.
00:26:41 :OK.On voudraitrécupérer, du coup,le prix le plus élevé ici.L'article, c'est là-dedansqu'il y a le prix le plus élevé.Mais il est en fait...
00:26:55 :Est-ce que vous savez, du coup,qu'il est possible de récupérer,d'utiliser Max et d'utiliser en même tempsla méthode de cette classe ?J'ai entendu.
00:27:09 :J'ai fait une proposition.OK.Alors,il y a un truc qui est un peu...qui paraît un peu débile,bizarre.Alors,en fait, vous avez Max.
00:27:31 :Et ici,ce que vous faites, c'est que vous passezvotre listeavectoutes vos instances.Là, en l'état, ça ne peut pasfonctionner, puisqu'on est vraimentsur des objets. Mais en fait,
00:27:47 :ce que vous pouvez faire,c'est qu'ici, on peut utiliser encore ce petitparamètre-làavec Max.On appelle la classeet on utilise la méthode.Et directement, en fait,sur la classe ici.
00:28:03 :Ici, je fais un print.Oui, c'est normal.Il n'a pas d'uster.Attends, je regarde si je n'ai pas oublié un truc au passage.Non, c'est bien, j'ai Products.
00:28:23 :OK.On prend un m, peut-être.De quoi ? En rajoutant .m.Attends, on va fairehop.J'allais direcomme toi, je vais faireune str avecun hop.
00:28:43 :Je suis où ? Hop là.Voilà, c'est bon.Donc, soit par name, soit paren définissant une str.Il n'y a pas de problème. On fait comme on veut.
00:28:59 :Du coup, ici,il a bien récupéré la banane.Mais, en fait,j'ai utilisé directement le nom de la classeet le nom de la méthoded'instance.
00:29:11 :Alors, ça peut paraître un peu bizarre.Moi, j'ai eu du mal à le concevoir au début.J'avoue quec'était un peu...Ça fait un peu bizarre.
00:29:23 :Je n'ai pas compris.En fait, on récupère le produit,le max des produitsle plus cher,par rapport à son prix final.Ok, par rapportà son prix final.
00:29:37 :D'accord.C'est pour montrer que, par exemple,si vous avez une méthode qui,je ne sais pas, qui retourneraitsur une classe,autre chose, peu importe, mais même un nombre,vous pouvez utiliser justementle maxsur vos instancesen utilisant K,le nom de la classe et le nom de la méthode d'instance.
00:29:59 :D'accord.C'est tout à fait possible.Après, si vous voulez récupérerle... Alors, il est possible ausside récupérer, par rapport à l'attribut,le prix, par exemple.
00:30:15 :Vous pouvez fairepour max, et si vous avez une idée,c'est comme on peut faire, sans utiliser la méthode,sans vraiment que l'attribut.Peut-être qu'on met d'abordla liste.
00:30:31 :Oui.Ok.Et le K.Là, il faut une instancede products.Là...Product.name, ça ne marche pas.Là, tu pourrais...Regarde, si je fais, par exemple...
00:30:59 :Non, tu ne pourrais pas.En fait,la lambda, elle revient.Ok.Et là, en fait, je trie.J'ai bien ma pomme, qui est la plus chère,normalement, price, price.
00:31:15 :Ah ben, elles ont le même prix que la cerise.La cerise.Mais, il faut savoir que max,vu que c'est le premier élément qu'il rencontre,il va garder celui-là. Il y a celui-là, ils ont le même prix,
00:31:25 :mais c'est le premier qu'il a rencontré, donc il va récupérerque la pomme, au passage.Bon, je ne sais pas s'ils vont vous poserdes questions comme ça, un peu tordus,genre, vous avez le même prix, lequelil va récupérer ? C'est le premier qu'il rencontre.
00:31:37 :Donc là, du coup,on a utilisé une lambda, donc pour un attribut comme ça,ici, on peut très bien utiliser une lambdaavec le...avec l'attribut lui-même.
00:31:47 :Voilà.Ou, comme j'ai fait tout à l'heure,quand on a besoin de trier çaparce que retourne la méthode,c'est carrémentla méthode iciqu'on passe.
00:32:01 :Et voilà.Est-ce que c'est tout ça que vous saviez ou pas, du coup ?En gros, vous l'avez déjà vu ou...Certains trucs, mais pas tout.
00:32:11 :Je sais qu'en général, ça,depuis que je l'ai appris, quand je le montre aux gens,ça fait son petit effet parce qu'ils disent« putain, on ne savait pas que c'était possible de faire ça ».
00:32:19 :Mais ça peut être pratique.Ça m'a servi une fois.Ouais, c'est important, c'est important, ça.Mais quand tu le connais, après,vraiment, ça peut te sortir d'une situationoù tu ne sais pas trop quoi faire.
00:32:31 :En fait, ouais, c'est trop bien.Vraiment, tu utilises ta méthode,il y a plein de choses,et ça, c'est cool.Donc, voilà.Là, on a vu quelques petites choses.
00:32:43 :C'était surtout du sort, sort aid.Le masque, comme ça, que je voulais voir.Mais j'ai prévu un...J'ai prévu un repo.J'ai mis des commentaires et tout.
00:32:55 :Avec pas mal...Avec des exemples propres.Avec un petit rythme qui va avec.Est-ce que vous avez des questions par rapport à ça ?Ou pas ?
00:33:05 :Bon, ça va, moi, quand même.Ouais.Yacine ?En fait, personnellement,je n'ai pas de questions.C'est ma première foisde voir cette utilisationde masque.
00:33:25 :Je ne sais pas si c'est la première foisque je le vois,cette utilisation de masque.Ouais.Donc, je pense que,en soi, je dois un peu plusme documenter là-dessus.
00:33:39 :Ouais, c'est vrai que, Max,moi aussi, quand je l'ai découvert,c'était au mois de mars.Je ne sais plus,c'était sur Hacking Science.J'avais vu un défi,et ça m'avait permis d'avoir le résultatpile comme il fallait dessus.
00:33:55 :De faire passer tous les tests.Mais, du coup, j'aurais le repo.Je ne sais plus, Arcel, tu as peut-être loupé.T'avais vu, t'es arrivé à tempspour l'item getter ou tu l'as loupé ?
00:34:07 :Non, je l'ai carrément loupé.Ouais, je vais mettre le repo,de toute façon, sur le salonPremium, là.Mais on a parlé duitem getter avant aussi.
Aucune occurrence trouvée pour « ».
00:00:40
Introduction à sort et sorted
00:05:02
Utilisation de sort avec le paramètre key
00:07:07
Tri de listes par longueur
00:13:19
Utilisation de itemgetter
00:16:03
Comparaison lambda et itemgetter pour trier
00:17:26
Tri multiple avec lambda
00:22:00
Utilisation de max avec des méthodes de classe
00:30:11
Comparaison max avec lambda et attributs
00:32:07
Conclusion et questions