0% ont trouvé ce document utile (0 vote)
3 vues16 pages

Conteneurs séquentiels en Python

Transféré par

ranimajimi2
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
3 vues16 pages

Conteneurs séquentiels en Python

Transféré par

ranimajimi2
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

A​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ Programmation

Python Enseignant : Dr. Aymen LOUATI

Chapitre 4 : Les conteneurs à accès séquentiel


(Tuples, listes et chaînes)
4.1. Introduction
Python permet de regrouper un ensemble de données de même type ou de types différents à
l’intérieur de structures de données spéciales appelées conteneurs. Il existe deux catégories de
conteneur :

- Les conteneurs séquentiels : Nous notons les listes, les tuples et les chaines de caractères.
A l’intérieur de ces structures de données, les éléments sont rangés en utilisant des
index (commençant à partir de 0).
- Les conteneurs à accès directs qui seront abordés dans le chapitre suivant.
Dans la suite, nous exposons les propriétés communes aux conteneurs séquentiels, puis nous
abordons le côté spécifique de chacun de ces derniers.

4.2. Propriétés communes aux conteneurs :


Hypothèses : Nous disposons d’un conteneur C qui peut être :

∙ Une liste : Une séquence d’éléments encadrés par des crochets []

∙ Une chaine : une séquence de caractères encadrés par des côtes ou des chevrons ‘’ ou «
»:

∙ Un tuples : une séquence d’éléments encadrés par des parenthèses

Les opérations communes sur un conteneur séquentiel sont :

∙ Taille : len(C)

∙ Accès à un élément : C[index de l’élement] : Les index permis sont compris entre 0 et
len(C)-1 pour un parcours de gauche à droite et entre -1 et –len(C) pour un parcours
de droite à gauche
20 | P a g e
ISI Kef 2024-2025
Programmation Python Enseignant : Dr. Aymen LOUATI

∙ Accès à une partie des éléments : C[i :j] : renvoie un conteneur constitué des éléments se
trouvant entre la position i et la position j-1.
NB :
- C[ :i] : renvoie la sous liste constituée des éléments d’indices compris entre 0 et i-1 - C[i
:] : renvoie la sous liste constituée des éléments d’indices compris entre i et len(C)- 1.
- C[ ::] :renvoie la totalité de la liste

- C[ ::-1] : inverse la liste des éléments

∙ Accès à une partie des éléments avec notion de pas : C[i :j :k] : renvoie un conteneur
stockant les éléments entre les deux positions i et j-1 en effectuant des sauts
d’amplitude k

∙ Test d’appartenance : x in C
∙ Test de non appartenance : x not in C

21 | P a g e
ISI Kef 2024-2025
Programmation Python Enseignant : Dr. Aymen LOUATI

∙ Concaténation : l’opérateur + permet de coller les éléments de deux ou plusieurs


conteneurs

∙ Répétition : C*n : l’opérateur * permet de créer un conteneur contenant n copies de C

∙ Recherche de la position d’un élément : [Link](x)

∙ Calcul du nombre d’occurrence d’un élément : [Link](x)

∙ Minimum et maximum : min(C), max(C)

Application :

- Créer une liste t=[1,2,4,-6] et une chaine ch=’abc cd ! ;:’


- Appliquer toutes les commandes vues précédemment pour t et ch.

NB : Les conteneurs ne peuvent pas être tous modifiés après leurs créations, seules les listes
sont des structures de données modifiables ou mutables ou non immuables, tuples et chaines
sont non mutables ou immuables.

4.3. Commandes spécifiques aux listes


∙ création :
■ liste vide :
■ commande list :

■ Avec les [] :

22 | P a g e
ISI Kef 2024-2025

Programmation Python Enseignant : Dr. Aymen LOUATI

■ Liste en compréhension : La syntaxe est la suivante : [expression for indice in


conteneur/itérable if condition] :

Application : retrouver les listes en compréhension présentées en haut en utilisant les boucles.
■ par conversion

∙ Modification : nous utilisons l’opérateur d’affectation =


■ d’un élément

■ d’un slice

Application : créer une liste contenant les entiers compris entre 0 et 5 puis modifier tous les
éléments impairs par des 0 en utilisant la notion de pas.

∙ Ajout
■ d’un élément à la fin : nous utilisons la commande append

■ d’un slice : avec la commande extend


■ insertion : avec la commande insert

23 | P a g e
ISI Kef 2024-2025

Programmation Python Enseignant : Dr. Aymen LOUATI

∙ suppression
■ d’un élément : trois possibilités : del, remove et pop

■ d’un slice

∙ copie :
■ copie normale : avec la commande copy :
■ copie profonde : avec la commande deepcopy

24 | P a g e
ISI Kef 2024-2025
Programmation Python Enseignant : Dr. Aymen LOUATI

∙ tri :
avec la commande sort

∙ inversion : avec la commande reverse

4.4. Commandes spécifiques aux tuples :


∙ création :
■ tuples vides :
■ création directe avec les () :

■ avec la commande tuple :

■ par conversion

■ en compréhension

25 | P a g e
ISI Kef 2024-2025
Programmation Python Enseignant : Dr. Aymen LOUATI

∙ modification :
Les tuples sont non modifiables, toute tentative de mise à jour déclenche une erreur :

∙ ajout d’un élément :

On écrase l’ancien tuples avec le résultat de la concaténation de t avec le tuple (1,)


(1,) est un tuples composé d’un seul élément, la virgule est obligatoire.

4.5. Commandes spécifiques aux chaines :


∙ test de la nature de la chaine : alphabétique(isalpha), numérique(isidigit) ,
vide(isspace) ou alphanumérique(isalnum) :

∙ conversion majuscule / minuscule : upper et lower :

∙ commence avec/ se termine avec : startswith, endswith :

26 | P a g e
ISI Kef 2024-2025
Programmation Python Enseignant : Dr. Aymen LOUATI

∙ éliminer les espaces à droite et à gauche : avec la commande strip :

∙ décomposition : commande split : décompose une chaine en utilisant un caractère ou


une sous chaine comme séparateur. Le résultat est toujours une liste :

∙ coller plusieurs chaines : commande join : opération réciproque de split :

∙ Recherche d’une sous chaine dans une autre chaine : commande find :
∙ Remplacer une sous chaine par une autre : commande replace :

∙ Affichage formaté : commande format : Syntaxe : [Link](parametres) :

27 | P a g e
ISI Kef 2024-2025
Programmation Python Enseignant : Dr. Aymen LOUATI

Chapitre 05 : Les conteneurs à accès direct


(Dictionnaires & ensembles)
5.1. Introduction
Dans le chapitre précédent, nous avons traité les conteneurs séquentiels de Python. Pour
accéder à un élément d’un conteneur, nous utilisons son index. Les valeurs autorisées des
index sont obligatoirement séquentielles. Python permet d’utiliser une autre catégorie de
conteneurs maniant des index organisés d’une manière non séquentielle. Le conteneur n’est
plus une structure ordonnée, il s’agit bien d’un conteneur à accès direct.

5.2. Les dictionnaires


Un dictionnaire est un conteneur modifiable non ordonné composé d’un ensemble de couples
index : valeur. Les index sont aussi appelés des clés et les valeurs des entrées. La création
d’un dictionnaire peut se faire de plusieurs manières:

∙ Dictionnaire vide :
∙ La commande dict (avec comme paramètre une liste de listes, chacun de la forme [clé
,valeur]) :

∙ Les {} :

∙ En compréhension

28 | P a g e
ISI Kef 2024-2025
Programmation Python Enseignant : Dr. Aymen LOUATI

∙ Directement (en utilisant la syntaxe NomDict[cle]=valeur) :

La taille d’un dictionnaire qui est le nombre d’entrées qu’il contient est accessible via la
commande len, pour afficher une valeur correspondante à une clé, nous utilisons la syntaxe
NomDict[clé], les deux opérateurs in et not in testent l’appartenance d’une clé à un
dictionnaire :
Python permet d’accéder aux informations stockées au niveau d’un dictionnaire de plusieurs
manières :

29 | P a g e
ISI Kef 2024-2025

Programmation Python Enseignant : Dr. Aymen LOUATI

Une entrée peut être accédée par la commande get :

Par contre, la commande setdefault permet de :

∙ créer une entrée vide si on fournit un index non encore utilisé et pas de valeur en
deuxième paramètre :

∙ Ajouter une entrée :

∙ Récupérer la valeur d’une clé existante :

La mise à jour d’un dictionnaire passe par l’ajout, la modification et la suppression d’entrées :

30 | P a g e
ISI Kef 2024-2025
Programmation Python Enseignant : Dr. Aymen LOUATI

Python offre un ensemble de commande de mise à jour pour les dictionnaires :

∙ update : La syntaxe est [Link](d2) : Fusionne deux dictionnaires. Si la clé figure dans
les deux dictionnaires alors la valeur de l’entrée correspondante dans d1 sera mise à
jour, sinon, une nouvelle entrée est créée dans d1 :

∙ pop : la syntaxe est [Link](index) : supprime l’entrée dont la clé est index et la
retourne en résultat ; popitem : la syntaxe est [Link]() : supprime
aléatoirement une entrée et la retourne :

∙ clear : La syntaxe est [Link]() : efface le contenu d’un dictionnaire

∙ copy : La syntaxe est d2=[Link]() : copie un dictionnaire dans un autre après avoir
importer le module copy.

5.3. Les ensembles


Les ensembles Python modélisent les ensembles mathématiques. C’est une collection d’objets
non ordonnées sans redondance de même types ou de types différents. Les éléments d’un
ensemble ne doivent jamais être des listes, des dictionnaires ou d’autres ensembles.

Un ensemble peut être créé de plusieurs manières :

∙ ensemble vide :

31 | P a g e
ISI Kef 2024-2025
Programmation Python Enseignant : Dr. Aymen LOUATI

∙ la commande set :

∙ les {}

∙ en compréhension
Un ensemble est une structure de données non ordonnée. La commande len donne la
cardinalité de l’ensemble. Nous pouvons tester l’appartenance d’un élément à un ensemble
mais nous ne pouvons pas utiliser un indice :

La mise à jour d’un ensemble est possible vue que c’est un type mutable :
∙ ajout d’un élément

∙ Suppression d’un élément :


■ remove : La syntaxe est [Link](elt) : supprime un élément existant et déclenche une
exception dans le cas échéant :

32 | P a g e
ISI Kef 2024-2025
Programmation Python Enseignant : Dr. Aymen LOUATI

■ discard : La syntaxe est [Link](elt) : supprime un élément s’il existe et ne déclenche


pas d’erreurs si elt ne fait pas part de s :

■ pop : Le syntaxe est [Link]() : supprimé un élément aléatoire de s et déclenche une


exception si l’ensemble est vide :
Toutes les opérations ensemblistes sont possibles en Python, on peut teste si :

∙ deux ensembles sont identiques ou différents : Les opérateurs de comparaisons == et != :

∙ deux ensembles sont disjoints (aucun élément en commun) :

∙ un ensemble est un sous ensemble d’un autre

33 | P a g e
ISI Kef 2024-2025
Programmation Python Enseignant : Dr. Aymen LOUATI

∙ un ensemble contient un autre ensemble

∙ L’union

∙ L’intersection
∙ La différence

∙ La différence symétrique

Les opérations de réunion, intersection, différence et différence symétrique se présentent sous


une 2ème forme en python qui autorise une sorte de mise à jour de l’ensemble en question :

34 | P a g e
ISI Kef 2024-2025

Vous aimerez peut-être aussi