Python : Les structures de données

Importer avec le module Codecs

Testez gratuitement nos 1300 formations

pendant 10 jours !

Tester maintenant Afficher tous les abonnements
Vous pouvez améliorer l'importation de votre liste, notamment avec le module Codecs. Vous aurez également quelques informations sur l'opérateur de slicing.
07:59

Transcription

On est déjà pas mal, mais on a notre problème d'encodage ici. On va essayer de résoudre au plus simple. Si on se souvient bien, on a ici un paramètre encoding. Très bien. Ici, on le voit en UTF-8, donc on n'a pas un affichage qui est très, très joli en UTF-8. Est-ce que la source est en UTF-8 ? Puisqu'on a vu que l'objet open était en CP1252. Bon, on essaye ça, tout simplement. C'est parti. Ça nous a permis de résoudre notre problème, manifestement. Bon, très bien. Voilà qui est simple. Si jamais vous avez des problématiques un peu plus compliquées et vous voulez rentrer dans l'encodage et le décodage un tout petit peu plus profondément, vous avez une classe, enfin un module plutôt qui se trouve dans la bibliothèque standard et qui s'appelle codec et qui vous donne accès à l'interne des codecs, c'est-à-dire des encodeurs et des codeurs de Python. Vous avez des méthodes comme encode, decode, auxquelles vous voyez, vous envoyez un encoding, comme je viens de le faire. Alors, UTF-8 avec ou sans tiret, d'ailleurs. Et puis, une gestion d'erreur qui vous voyez est par défaut à strict et ici, par défaut, on a un encoding d'UTF-8. Donc, la gestion d'erreur, elle est indiquée un petit peu plus bas. Gestion d'erreur, ça peut être strict donc, dès qu'on a un problème d'encodade ou de décodage, on lève une exception. Soit on a un ignore, donc, on continue avec les erreurs, soit on a un replace, et d'autres types de replace sur du texte uniquement, où on va pouvoir dire : « J'ai un problème d'encodage sur un caractère en particulier, j'essaye de le remplacer avec un autre qui est intégré dans les codecs de Python. » Donc, on aurait pu directement utiliser notre module codec comme ceci et utiliser, non pas encoding ou decoding, mais il y a une méthode, propre à codec qui s'appelle également open et à laquelle, je peux indiquer donc le mode, c'est pas la peine de toute façon, le mode read est par défaut, l'encoding, comme je l'ai fait ici et puis la gestion des erreurs. Ou j'aurais pu mettre replace. Donc, ça nous donne aussi le même résultat. Mais si vous avez plus de problèmes, Eh bien, vous pouvez utiliser ceci pour faire quelques essais et avancer dans ce sens-là. Bon, c'est pas mal. Maintenant, on va essayer de faire un peu mieux avec ça. On a des listes, dont toute une collection de listes. On va pouvoir travailler avec des éléments de cette liste. Donc, on se rappelle : une liste, en Python, c'est quelque chose qu'on appelle plutôt un tableau dans d'autres langages. C'est-à-dire, une collection d'éléments, comme c'est le cas ici qui sont ici tous, du même type, des strings manifestement, des str et en Python, la liste est aussi une collection d'éléments comme un tableau et pas forcément du même type, ça on va le voir. Alors, quand je dis comme un tableau, c'est la structure de données de base ; dans la plupart des langages de programmation, c'est un array, un tableau. C'est-à-dire, des éléments, dans un certain ordre et qui sont référencés par un index. Je peux très bien ici, dans ma liste, prendre seulement la position ici ou celle-ci. C'est-à-dire, l'élément numéro 0, on est toujours en base 0, sauf dans quelques langages mais en Python, on est en base 0, comme on l'est en C par exemple, ou en C++ et ça c'est l'élément nº1. Donc, je peux très bien référencer dans ma liste avec un index, par exemple, le premier élément et à ce moment, je récupère eh bien, seulement la première valeur. On n'est plus dans un tableau, vous voyez. On voyait qu'on était dans un tableau, bien sûr parce qu'on a cette syntaxe de crochets ouvrants, crochets fermants qui indiquent que les éléments ici sont dans un tableau. Ça c'est vraiment la syntaxe du tableau. Donc, si je prends, par exemple, ma position 1 eh bien, je me retrouve avec seulement des valeurs primitives mais on voit bien que c'est une chaîne de caractères. 01 02. Donc, on a récupéré le type et on a maintenant simplement, un type primitif ; On a pas une collection à disposition. Donc, en Python, la liste, c'est comme un tableau ; c'est simplement une liste d'éléments auxquels on peut accéder par leur index et on peut ajouter, modifier ; c'est quelque chose qui est modifiable ou mutable si vous préférez. Il y a beaucoup de langages où le tableau est, on dit en anglais, "imutable", immuable en français, ce serait une meilleure traduction. Ça veut dire qu'on a créé notre tableau et on ne peut pas le toucher. Ici, en Python, la liste est tout à fait modifiable, elle est très dynamique. On verra ensuite, que le tuple, c'est la version "imutable", immuable de la liste. Encore un mot, parce qu'on va avancer là-dessus, si je veux récupérer un élément, j'indique ici l'index, mais je peux récupérer plusieurs éléments à l'aide de l'opérateur de slicing. Jouons déjà ça : voyez, "1:" et rien derrière. C'est un peu la magie de Python mais on essaye. Donc, j'ai ici le code et tout ce qui suit. Mais je n'ai pas pris la position 0. L'opérateur de slicing, fonctionne de la façon suivante : début : fin. Par exemple, 1 à 3. Et éventuellement, lorsqu'on en a besoin, dans certains cas, c'est très rigolo, un troisième élément pour dire quel est l'intervalle. Si je fais ça par exemple : regardez bien. On part à 1. Ici, on a Guadeloupe, Guadeloupe en majuscule, en minuscule et j'ai 341. Si je fais ça, j'ai ça : Guadeloupe en majuscule et j'ai 341. Voyez, il m'en manque un sur deux parce que j'ai dit ici qu'on faisait un pas de deux. Donc, je pars de 1, je vais jusqu'à la fin mais en prenant un sur deux. Bon, c'est très rigolo, ça va pas nous servir à grand chose ici pour importer notre CSV mais c'est juste pour vous montrer l'opérateur de slicing complètement. Donc, position de début, position de fin. Si je veux récupérer et alors vous allez voir ce que je vais récupérer, d'ailleurs. Je fais de 1 à 3. Et donc, j'ai le code et le nom du département. Alors, si vous n'avez pas l'habitude de l'opérateur de slicing, vous êtes en train de vous dire : « Attends, j'ai pris position 1 et ensuite, c'est la position de fin. » Ici, c'est pas la longueur, si vous voulez, c'est vraiment la position de fin. Et la position de fin n'est pas comprise, elle n'est pas incluse, c'est-à-dire, 1, 2 et 3 je ne le prends pas. Vous allez me dire : « Mais pourquoi elle n'est pas incluse ? » Pourquoi on ne ferait pas ça ? On prend de 1 à 2 inclus, ça nous donnerait ceci : position 1, position 2 incluse. Et bien, parce que si c'était inclus, ça ne nous permettrait pas de faire ceci, je vous montre : de 1 à 1, si c'était inclus, on prendrait le code, n'est-ce pas ? Mais regardez ce que ça donne : rien, une liste vide. Parce que ça va être parfois pratique pour insérer. On verra ça après. Bon, OK, j'ai une liste vide, si je fais de 1 à 2, comme c'est non-inclus j'ai un élément. Mais cette fois-ci on est d'accord, sous forme de liste. Parce que lorsque j'ai fait ça, j'ai l'élément lui-même mais lorsque je fais ça, j'ai une liste avec un élément. Le slicing va retourner une liste. L'index retourne un élément qui est à l'intérieur, mais le slicing automatiquement me retourne maintenant un type de donnée de retour qui est une liste. Donc je fais de 1 à 2, je récupère ça, je fais de 1 à 3, donc ça veut dire 1, 2 et 3 non compris, donc 1 et 2, ça me retourne ceci. Ça c'est juste pour maîtriser un peu l'opérateur de slicing, C'est très pratique lorsque vous voulez modifier le contenu d'une liste, notamment. Donc, voila, on a récupéré déjà quelque chose de plutôt pas mal qui est une collection de listes, avec simplement le code et le nom du département.

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 !