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

Créer des dictionnaires avec zip

TESTEZ LINKEDIN LEARNING GRATUITEMENT ET SANS ENGAGEMENT

Tester maintenant Afficher tous les abonnements
Profitez à présent de l'excellente fonction zip de Python pour créer des dictionnaires à partir de deux tuples.
05:49

Transcription

On va un peu s'intéresser au dictionnaire, maintenant. Je vous l'avais dit, le type dictionnaire n'est pas très compliqué. C'est une table de hachage ou un dictionnaire tout simplement. On a deux ou trois choses à voir. En tout cas, ce qu'on va voir, c'est comment générer un dictionnaire. Parce qu'on a quand même ici l'idéal : J'ai des départements, des noms de départements et des codes de départements. Donc, ce serait bien d'avoir un dictionnaire. La clé serait le code et la valeur serait le nom du département, c'est assez logique. Je suis revenu ici sur un code assez propre où par compréhension de listes ici, en récupérant troisième élément, 2 en base en 0 de chaque ligne de mon CSV, qui est retourné comme une liste, vous vous souvenez. Et bien, je récupère le nom du département, et puis j'en fais un tuple, je le mets dans départements, ça me donne ceci. Rien de bien grave. Comment est-ce que je peux créer un dictionnaire? Je pourrais avoir une première approche qui serait de dire, "je me fais un autre tuple quand je lis mon CSV. Et je me fais un autre tuple avec des codes," comme ceci. Et puis, j'utilise le même raisonnement, finalement. Je pars sur une compréhension de listes et au lieu de récupérer la position 2 je prends la position 1 qui correspond au code chaîne de caractères 01 02 de mon département. On essaye ? On va faire un print des deux tuples, code ensuite département, et on va voir ce que ça nous donne. Comme vous le voyez, c'est assez rigolo parce que j'ai un premier tuple qui marche bien avec mes codes de départements, et puis j'ai un deuxième tuple qui est quand même un peu vide Et puis, c'est sympa parce que Python nous a pas embêtés, il ne nous pas donné d'erreurs, il ne nous a pas fait d'avertissement en disant qu'on faisait un tuple vide. Il a été très gentil avec nous. Faut qu'on vérifie notre résultat de notre côté. Pourquoi d'ailleurs, les départements sont-ils vides ? Si on suit la logique de notre reader ici, c'est relativement compréhensible. On a ouvert notre fichier CSV et ensuite, on a demandé à notre CSV reader de lire le fichier finalement. Et il a lu, ligne par ligne dans cette opération de boucle qui fait une compréhension de listes. Donc il a bouclé, lu toutes les lignes et il est arrivé à la fin. Et je lui ai demandé une deuxième fois de boucler mais il était à la fin. Donc, première approche : vous allez vous dire, ce n'est pas très, très efficace, mais on va le faire quand même, c'est, pourquoi on ne reviendrait pas au début du fichier ? On peut le faire en prenant notre fichier lui-même. Donc on a fait un open et on l'a mis ici, dans cet objet, et je fais un seek, je vais chercher quelque part dans le fichier et je me mets à la position 0. Donc je reviens en arrière. Donc, première approche et là, ça marche un peu mieux, j'ai mes deux tuples. Donc là je vous entends déjà vous dire, "mais Rudi, arrête ces bêtises ! Tu ne vas pas lire deux fois le fichier complètement pour récupérer deux des valeurs !" On va travailler, bien entendu, autrement. Mais, allez, gardons notre souffle, on va tenir quelques minutes là-dessus et puis on faire mieux bien sûr. Mais on peut se poser la question maintenant, on a nos codes, on a nos départements dans deux tuples différents. Est-ce qu'on peut faire un dictionnaire avec ça ? Une boucle peut-être ? On pourrait dire, on boucle dans les codes et puis, on ajoute le département qui a la même position. Oui d'accord, mais on est en Python et on a une fonction qui est très, très bien pour ça et qui sert d'ailleurs magnifiquement à ça. C'est la fonction qui s'appelle zip. OK, je vais l'appeler mélange, ça ne veut pas dire grand-chose, et puis, je vais appliquer la fonction zip. Et alors, la fonction zip, comme son nom l'indique, zip comme une fermeture éclair. Imaginez votre chemise. Qu'est-ce que vous avez ? D'un côté, des boutons, de l'autre côté les trous de vos boutons Et puis, vous commencez par le bas, en général et vous mettez un bouton dans le premier trou, le deuxième bouton dans le deuxième trou, etc. C'est comme ce que vous faites quand vous avez une fermeture éclair. Et bien, zip fait exactement la même chose. Il va prendre un premier itérateur et puis un deuxième itérateur. Alors ici, tout va bien, c'est la même taille donc on n'aura pas d'effets particuliers. Et puis, il va prendre la première valeur du premier itérateur, la coller à la deuxième valeur et ainsi de suite. Pour faire finalement, une liste de listes où on aura des paires 01 1, 02 n, 03 ai et etc. Donc, ce zip va me retourner à un objet de type zip. On va voir. Maintenant, on va juste faire un print de mélange. Donc on a un objet zip, vous vous souvenez, on est en Python 3, donc on a des types plutôt itérateurs, là. Et qu'est-ce qu'on va faire ? On va utiliser le constructeur du dictionnaire qui demande un itérable, spécifique. Et là, on va avoir un itérable avec des paires. Et bien, le constructeur du dictionnaire il va être magnifiquement capable de nous faire ça. Et voilà, 66, Pyrénées orientales. Alors on n'est pas dans l'ordre : on est dans un tableau de hachage, dans notre dictionnaire. Ce qui nous importe ce n'est pas d'être dans l'ordre c'est de pouvoir récupérer une valeur par rapport à un index. On est d'accord. Par exemple, je veux le département 75 et bien c'est Paris. Ah bon. Si si. Notre première approche. Evidemment, on va faire un tout petit peu mieux que ça, mais c'est déjà pour vous montrer la fonction zip qui est vraiment très pratique. Pensez-y exactement comme à une fermeture éclair Vous prenez deux listes, deux itérateurs, et vous les collez ensemble et à la position 0, vous aurez les deux positions 0 position 1, les deux positions 1 de vaud, deux itérables. Ou plus, d'ailleurs. Vous pouvez ajouter plus de paramètres à zip.

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 !