Le 14 septembre 2017, nous avons publié une version actualisée de notre Politique de confidentialité. En utilisant video2brain.com vous vous engagez à respecter ces documents mis à jour. Veuillez donc prendre quelques minutes pour les consulter.

Python : Les structures de données

Trier avec une expression lambda

TESTEZ LINKEDIN LEARNING GRATUITEMENT ET SANS ENGAGEMENT

Tester maintenant Afficher tous les abonnements
Ajoutez à présent des paramètres de tri, notamment la clé de tri, et choisissez une clé de tri avec une expression lambda.
05:39

Transcription

Pour le sort, attention aux types de données. Donc, ici, je suis sur des chaînes de caractères. Mais admettons que je récupère par exemple, la première colonne, si vous voulez, notre CSV qui sont des nombres et pour l'instant, tout va bien, parce que ces nombres sont représentés sous forme de chaînes de caractères mais disons que je veux en faire des entiers en faisant un petit transtypage, ici. La fonction in, c'est ce qui prend une chaîne ou quoi que ce soit et convertit en entier. Et là, je commence à avoir un problème sur mon tri parce que je ne peux pas vraiment trier des pommes et des framboises. On est d'accord, on ne sait pas comment comparer une chaîne de caractères avec un entier. Donc, méfiez-vous des types de données et puis, si je reste là-dessus, regardez également comment vous voulez organiser votre ordre de tri. Parce que si je récupère maintenant des chaînes de carctères qui sont en fait, des numéros, des entiers, mais sous forme de type de chaînes de carctères. Vous voyez que le tri ici est alpha-numérique : 1, 10, 100, 11, 12, 13 on est d'accord. Vous pourriez spécifier ici, quelle est la clé qui va permettre de faire le tri, comment vous allez trier. Et vous avez déjà des informations prédéfinies. Vous pouvez dire "qui est égal à" et là vous pouvez indiquer quelle est la clé sur laquelle vous voulez trier. Vous pouvez aussi indiquer dans le sort un comparateur, si vous travaillez avec des objets, bien sûr. Mais, là, on va rester sur l'idée de la clé. Je peux dire, "je veux une clé de type entier." Donc, on veut réfléchir sous forme d'entiers. Et là, Genève ça va nous poser un problème. Donc effectivement, Genève n'est pas tout à fait un entier. Par contre, je pourrais dire, "oui, OK, tu as bien des chaînes de caractères mais tu vas utiliser un tri, en faisant finalement une conversion en entiers en triant sur les entiers, comme ceci. Donc, ça peut être pratique et parfois vous avez des choses un peu bizarres sur le sort que vous pouvez régler avec cette idée de clé. Alors, si je reviens, je vais garder ça. Aussi pour vous, et si j'en reviens à la situation de départ, comme ceci, donc, là évidemment, il faut que je fasse un tri sans la clé et que j'aurais trié par autre chose. Ou disons, je ne sais pas, par la dernière lettre. Est-ce que c'est possible? Oui, c'est possible, bien entendu et vous allez le spécifier dans la clé. La clé peut accepter une fonction et donc si UTS peut accepter une fonction, vous pouvez écrire ici une fonction anonyme. C'est-à-dire, une expression lambda pour indiquer quel élément de la liste vous voulez prendre en compte pour trier. Alors, admettons : je veux trier par la dernière lettre, ici, le n, e, r, s et faire un tri là-dessus. Comment est-ce qu'on va exprimer ça en lambda? Donc, pour rappel, une expression en lambda en Python, ça s'écrit comme ça : il faut indiquer le mot clé lambda, prendre une définition de variables. Par exemple, je vais mettre l pour lettre et je vais dire, "il faut que je gère chaque élément." Qu'est-ce que c'est que ça? C'est une chaîne de caractères, n'est-ce pas? Et une chaîne de caractères, on sait que c'est un itérable qu'on peut référencer par son index. Et on sait qu'un index peut être référencé par une valeur négative. Si je fais ça, et que je dis 0, c'est la première lettre mais si je dis -1, c'est la dernière lettre. On part de la fin et on fait -1. Donc, -1 à partir de la fin de la dernière lettre, voyons ce que ça donne. OK a, d, d, d, d etc. Par contre, à l'intérieur, on voit qu'on n'est pas particulièrement trié. Alors, pour une raison assez simple, c'est que le tri est stable dans Python, c'est-à-dire, que si on a la même valeur de tri, l'ordre originel qui se trouvait dans la liste est conservé. Donc tous les dés, se retrouvent dans l'ordre où ils étaient avant, dans la liste. Ce qui est assez pratique après pour faire des tris à plusieurs niveaux, d'ailleurs. Donc, voila déjà ça. On a effectivement ressorti à l'aide de notre expression lambda la dernière lettre et puis, on l'a choisie pour trier. Est-ce qu'on a un moyen d'ailleurs, me demanderez-vous, de faire un tri avec le renversement total de chaque chaîne ? C'est-à-dire, non pas la dernière lettre, mais la chaîne renversée. C'est-à-dire, on renverse chaque chaîne. Bien sûr et on va pouvoir utiliser pour ça l'opérateur de slicing. Je vous montre. Je garde ça, je commente ceci, on n'en n'a plus besoin. Et ici, regardez. Vous allez comprendre tout de suite. Ça c'est tout. Mais ça c'est tout avec un incrément, des étapes. Et ces étapes, c'est ça. Donc vous voyez le raisonnement : on part de rien et de rien, et donc on prend tout. Mais on va faire des étapes de -1. Donc, en fait, on part de la fin et on remonte vers le début et on renverse totalement chaque chaîne. Regardez, maintenant, je suis en a, d, d, d, d mais j'ai fait un tri sur le r également r avant u, u également. Et puis, ensuite a, o. Et voila, c'est tout d'ailleurs, y a plus à aller plus loin. Vous voyez qu'en bricolant un petit peu et surtout en ayant une connaissance de l'opérateur de slicing et bien vous pouvez faire des choses assez amusantes.

Python : Les structures de données

Maîtrisez les ressources du langage de programmation Python. Abordez en détail les structures de données natives telles que les listes, les tuples et les dictionnaires.

2h07 (23 vidéos)
Aucun commentaire n´est disponible actuellement
 
Logiciel :
Spécial abonnés
Date de parution :30 août 2016

Votre formation est disponible en ligne avec option de téléchargement. Bonne nouvelle : vous ne devez pas choisir entre les deux. Dès que vous achetez une formation, vous disposez des deux options de consultation !

Le téléchargement vous permet de consulter la formation hors ligne et offre une interface plus conviviale. Si vous travaillez sur différents ordinateurs ou que vous ne voulez pas regarder la formation en une seule fois, connectez-vous sur cette page pour consulter en ligne les vidéos de la formation. Nous vous souhaitons un excellent apprentissage avec cette formation vidéo.

N'hésitez pas à nous contacter si vous avez des questions !