Nous mettrons à jour notre Politique de confidentialité prochainement. En voici un aperçu.

Python : Les structures de données

Utiliser la compréhension de liste

Testez gratuitement nos 1344 formations

pendant 10 jours !

Tester maintenant Afficher tous les abonnements
Apprenez la signification de la compréhension de liste de façon à simplifier radicalement l'écriture de votre code.
05:58

Transcription

Enfin nous y voilà, la compréhension de listes. Qu'est-ce que ça veut dire ? Ne vous inquiétez pas, c'est très, très simple. Si vous avez à faire quelque chose comme ça, mettre tous les éléments en majuscules ou quelque chose comme ça ; les filtrer. Eh bien, vous allez utiliser une fonction avec une lambda, ou vous allez faire une boucle. Je laisse ça de côté, je garde mon L1 . On pourrait très bien faire quelque chose comme ceci : for d in départements. Et donc j'enlève ça, je fais une boucle, et je fais d'abord un L1 comme ceci. Puis ce qu'on a fait là, en fait, on pourrait faire un append ; ou bien,on pourrait faire un L1 + = on va faire un append , comme ça on mettra un seul élément. Et puis on dit d upper , donc rien de miraculeux. On exécute et nous voilà en majuscules. Mais, on n'est pas obligé de faire une boucle, on n'est pas obligé de faire une expression lambda dans un map par exemple. Parce que finalement, on peut dire que ceci, va récupérer ici, une liste. Et cette liste, je peux la générer à l'intérieur. Parce que réfléchissons une seconde : si on oublie ceci et on ne prend que ça. Je veux une liste, un, deux, trois, bref ! Donc, cette liste, je l'ai codé en dur si vous voulez. Je l'ai attribué avec des valeurs fixes et des valeurs constantes : des littéraux. Je pourrais la générer ici cette liste, mais je ne peux la générer que si Python est capable de comprendre que le résultat de quelque chose, d'une opération, me génère une liste, et c'est ça la compréhension de listes. Python est capable de comprendre que je vais fabriquer quelque chose, et je n'ai qu'à le reprendre ici. je vais faire ça, je vais prendre ça, faire ça et enlever ça, prendre ceci, et je vais dire : d upper for d in départements. Ça quelque part, dans la logique, ça me retourne une liste. Eh bien, tout à fait ! Ca me retourne une liste, et je la place ici entre crochets, pour bien dire que je veux une liste. Et bien voilà, c'est aussi simple que ça ! Donc la compréhension de listes, ça veut dire que je peux générer avec cette syntaxe particulière, en disant quelque chose dans ma liste. Ça recréée une liste à la volée avec cette syntaxe très simple. Je la mets entre crochets pour dire : « oui, c'est vraiment une liste » et je l'attribue à quelque chose. Donc ça m'économise des boucles, ça m'économise une approche avec des expressions lambda dont je n'ai absolument pas besoin maintenant. Simplement, je place au bon endroit quelque chose qui me génère une liste. Et en fait, je peux l'utiliser partout où j'ai besoin d'un itérable. Enfin, à un certain nombre d'endroits où j'ai besoin d'un itérable. Exemple : je voudrais imprimer la taille totale des caractères de toute ma liste. Cela dit, c'est pas très compliqué parce que si on réfléchit un petit peu, j'ai le nombre de caractères total qu'on trouve dans la liste, je peux très bien faire un join , vous vous souvenez, je fais ça ! Je fais un join , de L1 ou départements , on s'en fiche. Et puis je fais une longueur de tout ça, donc c'est peut être tout aussi facile. Ca fait neuf cent sept. Mais je peux aussi réagir en compréhension de listes. Ici, je vais faire un print , je veux un l'Aine et j'ai un objet, eh bien, à l'intérieur de cet objet, je peux très bien dire : «La longueur du département for D in départements », une fois de plus. Donc c'est for et pas from . Voilà. Résultat des courses. Et ce n'est pas l'Aine que je veux ici, mais c'est bien sûr la Somme, voilà. Résultat des courses : j'ai la même chose. Donc c'est comme vous préférez, mais voyez j'ai pris ceci, qui me génère une liste, et je l'ai placé à l'intérieur d'un appel de fonction, comme paramètres, là où on s'attend à recevoir une liste. C'est donc très, très pratique. Une note par rapport à ça, ici je l'attribue à une nouvelle variable, parce qu'effectivement, je vais récupérer avec cette compréhension de liste, une nouvelle liste. Alors, je vous laisse réfléchir une seconde. Comment pourrais-je faire si à cet endroit je voudrais écraser la liste existante ? Vous allez me dire, c'est simple, je n'ai qu'à faire ça bien sûr. Mais là ce que je fais, c'est que je crée une nouvelle liste, et j'enlève l'ancienne liste, je change l'adresse de départements . J'ai dit, j'ai créé une nouvelle liste avec l'aide de cette méthode, et je place ma nouvelle liste à la place de l'ancienne. Donc je supprime l'ancienne liste, en quelque sorte. Ce n'est pas un problème, mais si vous voulez dans certains cas, reprendre la liste existante, à la même adresse, et puis modifier son contenu, eh bien faites ceci, parce que ceci indique qu'on veut modifier tout le contenu de la liste par chaque élément d'une nouvelle liste. Je dis : « je suis à la même adresse de départements et le contenu va être modifié, du début jusqu'à la fin, pour y mettre chaque fois des éléments différents, qui sont les versions en majuscules ». Entre nous, ce n'est pas forcément toujours une bonne idée, parce qu'on va être en train de modifier quelque chose en mémoire, élément par élément. C'est probablement plus rapide de générer une nouvelle liste et de la remplacer. Ça c'est des problématiques de mutabilité en mémoire, qui peuvent être beaucoup plus lents que de simplement faire un remplacement par un nouvel objet. Ça serait attester pour voir quelles sont les performances des deux solutions.

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 !