Python : Les structures de données

Utiliser Itertools

TESTEZ LINKEDIN LEARNING GRATUITEMENT ET SANS ENGAGEMENT

Tester maintenant Afficher tous les abonnements
Il est temps à présent pour vous de voir quelques exemples d'utilisation des fonctions itérateur d’itertools.
06:11

Transcription

Encore quelques exemples d'"itertools", avant de nous quitter. Nous avons fait une chaîne, nous avons fait un total cumulé. Il y a aussi une fonction que j'aime beaucoup, qui s'appelle "group by". Je l'aime beaucoup parce qu'on est presque dans du SQL, bien entendu. On va faire un "group by" des départements, par exemple. "Group by" des départements, ça veut dire qu'on va prendre nos départements, et puis qu'on va faire un "group by" par rapport à quelque chose, on va devoir choisir une clé particulière de regroupement, évidemment. Alors, ici j'ai déjà des possibilités intégrées pour ma clé. Donc je peux éventuellement passer une lambda. Mais il y a une version intégrée, c'est la longueur. Je vais regrouper mes départements par la longueur, c'est-à-dire le nombre de caractères, qu'est-ce que ça me retourne d'ailleurs ? On va retourner un tuple et voir ce qu'il y a dedans. Donc j'ai un tuple qui comporte la longueur et puis un objet groupeur, donc je vais avoir ici les valeurs possibles. Et donc il s'agit bien entendu ici d'un tuple qui comportent des tuples, donc je peux y accéder comme à un tableau à deux dimensions, tout simplement, donc je vais prendre le test, par exemple, position 0, ce qui me donne 3, et puis à ce moment là, je vais prendre à l'intérieur, la position 1, pour retrouver cet objet, on est d'accord, et regarder à quoi il ressemble. Il ressemble à lui même, c'est sûr, mais on va le convertir en tuple. Et il n'y a personne en 3, ça tombe bien. On va faire une petite boucle pour voir ce qui se passe, et donc on va faire une petite boucle, là c'est quand même plus intéressant de l'utiliser sous forme d'itérateur. Comme ceci, et puis, on va regarder ce qu'il y a dedans, et évidemment on va nettoyer notre code, et faire une vraie boucle. Donc on a un certain nombre de valeurs, et on voit qu'on a quand même assez peu de départements qui ont le même nombre de caractères. Donc on va se rajouter aussi, la taille, de façon à l'avoir correctement. On a 14 caractères : Seine-Maritime ; Seine-et-Marne 6 : la Sarthe et la Savoie. On est rentrés ici dans la boucle mais vous voyez le résonnement : on a fait un "group by", on a décidé de regrouper par un certain type de clé, là, la taille et puis maintenant on reçoit un itérateur mais qui peut être converti en une structure de données, qui nous donne cette relation ; pour la taille, j'ai un certain nombre de valeurs. Dernier exemple que j'aimerais vous montrer, une fonction qui est très pratique et qui s'appelle "compress". "itertools" point "compress" va, comme son nom ne l'indique pas particulièrement d'ailleurs, retourner par rapport à... Là je vais prendre une liste des départements, par rapport à un premier itérateur, qui sera les données, vous le voyez ici indiqué. Les données qui correspondent à un sélecteur. C'est très très simple, vous avez une première structure : une liste, un tuple, qui contient des valeurs. Une deuxième structure : une liste ou un tuple qui contient des booleans, vrais ou faux, que vous avez peut être généré, retrouvé, c'est très pratique pour recevoir une collection de booleans en paramètre d'une fonction, pour dire, je vais afficher telle ou telle valeur selon ma collection de booleans. Par exemple, je vais en générer une, et en général c'est un masque, on peut appeler ça un masque de sélection. Donc mon masque pourrait être avec une compréhension de liste, qui va me générer un tuple. Dans les départements, je voudrais seulement voir les départements dont l'initiale commence par une lettre avant "J". Ce n'est pas forcement dans mon exemple, la façon la plus logique d'aborder ça, je pourrais directement générer ma liste avec une compréhension de liste, mais ça vous donne un exemple. Je vais faire comme ça - "D" je prends la première lettre - je dis : « Est-ce que c'est plus petit que "J" ? » Ici toutes mes lettres sont en majuscule, "J" for "D" in "département". J'utilise ma compréhension de liste pour me faire un masque. Et si, avant ceci, on jette un coup d’œil sur le masque, je vais avoir - je vais commenter tout ceci - j'ai un générateur, je vais bien sûr prendre un tuple, et donc j'ai des "true" et des "false". Donc tout à fait un tuple, qui pour chaque valeur à la position du département, on me dit si c'est vrai ou faux. Est-ce qu'il commence par une lettre inférieure à "J", oui, celui-ci, non. Maintenant il ne me reste plus qu'à faire un "compress". Je dis : « Prends-moi les départements, prends-moi une autre structure, une autre liste, un autre tuple qui a des positions "vrai" et "faux", comme mon masque, puis tu me fais un "compress" de tout ça. » Donc, ça me donne ça, je vais en faire un tuple directement. Et puis, on va faire un "print" de ceci. Donc, j'ai effectivement: Côtes-d'Armor, Creuse, Hérault, etc. Mais, je ne vais pas plus loin que "J". J'ai peut-être autre chose avant, mais aucun département qui commence par une lettre égale ou supérieure à "J". Voilà, c'était pour vous donner quelques exemples. Mais vous voyez que, en quelques lignes, comme ici, vous pouvez générer quelque chose, donc un itérateur, finalement, quelque chose qui vous retourne une structure de données, que vous pouvez utiliser comme une structure de données, ou sur lequel vous pouvez faire une itération, pour résoudre des problèmes au quotidien, dans votre activité de programmation.

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 !