Vous êtes sur la page 1sur 11

Introduction

Un conteneur est un objet composite destiné à


contenir d’autres objets: nous distinguons les
séquences, les tableaux associatifs, les
Chapitre 2:Programmation Python ensembles et les fichiers textuels.
Les conteneurs sous Python Les conteneurs sont des objets itérables.
Deux classements sont possibles :
1)Mutables et Non Mutables
1ère année MP, PC, PT et BG -mutable : modification autorisée
-non mutable: modification non autorisée
2) Ordonnés et Non ordonnés
Une séquence est un conteneur ordonné
d’éléments indexés par des entiers indiquant
leur position dans le conteneur. Les indices
commencent par 0: list, str et tuple
1 2

Les listes <class ‘list’> Les listes <class ‘list’>


Les listes sont des séquences modifiables (“mutables”). Le type (la classe) est list Un des gros avantages d’une liste est que vous pouvez appeler ses éléments
Une liste est une structure de données qui contient une série de valeurs. par leur position. Ce numéro est appelé indice (ou index) de la liste
Python autorise la construction de liste contenant des valeurs de type différent (par
exemple entier et chaîne de caractères), ce qui leur confère une grande flexibilité.
Une liste est déclarée par une série de valeurs (ne pas oublier les guillemets, simples ou
doubles, s’il s’agit de chaînes de caractères) séparées par des virgules, et le tout encadré
par des crochets.
Soyez très attentifs au fait que les indices d’une liste de n éléments
commencent à 0 et se terminent à n-1.
Lorsque l’on affiche une liste, Python la restitue telle qu’elle a été saisie.

3 4
Les listes <class ‘list’> Extraction de sous-listes :
Un autre avantage des listes est la possibilité de sélectionner une partie en utilisant
La liste peut également être indexée avec des nombres négatifs selon le un indiçage construit sur le modèle [m:n+1] pour récupérer tous les éléments, du
modèle suivant : émième au énième (de l’élément m inclus à l’élément n+1 exclus). On dit alors
qu’on récupère une tranche de la liste.
L[p:n] renvoie une nouvelle liste constituée des éléments de L d'indice p inclus à n
exclu.
L[p:n:pas] renvoie une nouvelle liste constituée des éléments de L d'indice p
Les indices négatifs reviennent à compter à partir de la fin. inclus à n exclu, tous les pas.
Leur principal avantage est que vous pouvez appeler le dernier élément d’une L[:] renvoie une nouvelle liste constituée de tous les éléments de L.
liste à l’aide de l’indice -1 sans pour autant connaître la longueur de la liste.

5 6

Extraction de sous-listes : Extraction de sous-listes :


Remarquez que lorsqu’aucun indice n’est indiqué à gauche ou à droite du
L[p:] renvoie une nouvelle liste constituée de tous les éléments de L à
symbole « : » , Python prend par défaut tous les éléments depuis le début
partir de l'élément d'indice p inclus.
ou tous les éléments jusqu’à la fin respectivement.
L[:n] renvoie une nouvelle liste constituée de tous les éléments de L depuis
le premier jusqu'à l'élément d'indice n exclu. On peut aussi préciser le pas en ajoutant un « : » supplémentaire et en
L[::pas] renvoie une nouvelle liste constituée des éléments de L, tous les indiquant le pas par un entier.
pas.

7 8
Opération sur les listes : Fonctions utiles pour travailler avec des listes :

Tout comme les chaînes de caractères, les listes supportent


l’opérateur « + » de concaténation, ainsi que l’opérateur « * »
pour la duplication :

9 1
0

Fonctions utiles pour travailler avec des listes : Fonctions utiles pour travailler avec des listes :
len(L) renvoie le nombre d'éléments dans L
L’instruction range() vous permet de créer des listes d’entiers (et d’entiers
L.append(x) ajoute l’élément x à la fin de la liste L. uniquement) de manière simple et rapide. L’instruction range() fonctionne sur le
L.insert(i,x) ajoute x à la position i modèle range([début,] fin[, pas]). Les arguments entre crochets sont
L.remove(x) supprime de la liste L, la première occurrence de optionnels.
l’élément x (si la liste L contient plusieurs fois l'élément x, seul le
premier est enlevé).
L.reverse(): inverser la liste L.
L.pop() supprime le dernier élément de la liste L.
L.pop(i) supprime l'élément d'indice i de la liste L.
del L[i]: supprime l’élément d’indice i
L.index(x) renvoie l'indice de l’élément x dans la liste L. Les fonctions max, min et sum renvoient le maximum, le minimum et la somme
des éléments d’une liste, respectivement.
L.sort() modifie la liste L en la triant par ordre croissant.
sorted(L) crée une copie de la liste L, triée par ordre croissant (la
liste L n'est pas modifiée par cette instruction ; seule sa copie est
triée).
L.count(x): renvoie le nombre d’apparition de la valeur x dans L. 11 12
Listes de listes Copie de listes
Sachez qu’il est tout-à-fait possible de construire des listes de Il est très important de savoir que l’affectation d’une liste (à partir d’une
listes. Cette fonctionnalité peut être parfois très pratique. Pour liste préexistante) crée en réalité une référence et non une copie :
accéder à un élément de la sous-liste on utilise un double
indiçage

On peut remarquer que L et L1 ont la même adresse mémoire

13 14

Copie de listes Test d’appartenance


Pour recevoir une copie de liste indépendante, plusieurs manières L’inscription in permet de tester si un élément fait partie d’une liste.
existent:
Ou Ou

On peut remarquer que les quatre listes ont le même contenu

Exemple: calculer la somme des éléments d’une liste L


Et si on modifie L, les listes copies L2,L3 et L4 ne se modifient pas

15 16
Création d’une liste Création d’une liste
Exemple 1: Saisie d’une liste de 5 entier: On peut donc créer une liste en plaçant entre crochets (ou en écrivant list(…)
une expression suivie par une clause for (ou plusieurs) puis par zéro ou if. La
liste obtenue sera l’évaluation de l’expression. Rq: l’odre des expression for et
if est le même que celui des codes classiques.
Exemple 2:Création d’une liste de carrées:
Avec la fonction insert

Avec la concaténation des listes (il faut faire attention à l’ordre) On peut écrire le programme précèdent autrement:

Ou bien tout simplement:

Ou bien tout simplement: Ou bien Résultat:


17 18

Création d’une liste Les chaines de caractères <class ’str’>


Exemple 3: création d’une liste de couple (x,y): Une chaine de caractère est une séquence de caractère Unicode.
Syntaxe : C’est une séquence de caractères entre simple ou double côtes ordonnée
et non mutable (non modifiable)
Même principe d’indexation que les listes
Exemple :

Ou bien tout simplement:

Le résultat affiché dans les deux cas est:


Opérateurs + et *
19 20
Les fonctions utiles sur les chaines Les fonctions utiles sur les chaines
find(sch) : cherche la position d’une sous-chaîne sch dans la chaîne.
count(sch): compte le nombre de sous-chaînes sch dans la chaîne.
replace(c1,c2) :remplace tous les caractères c1 par des caractères c2 dans la chaîne
index(car) :retrouve l’indice (index) de la première occurrence du caractère car
dans la chaîne

len(ch): renvoie la longueur de la


chaîne ch
float(ch):convertit la chaîne ch en un
nombre réel (float)
int(ch):convertit la chaîne ch en un
nombre entier
ord(c): renvoie le code ASCII du
caractère c 21 22

Les fonctions utiles sur les chaines Les fonctions utiles sur les chaines
isupper(): retournent True si la chaîne ne contient que des majuscules isdigit() : retournent True si la chaîne ne contient que des caractères numériques et
islower() : retournent True si la chaîne ne contient que des minuscules qu’il y a au moins un caractère. Si non False
istitle() : retourne True si seule la première lettre de chaque mot de la chaîne est en isspace() : retournent True si la chaîne ne contient que des espaces et au moins un
majuscule caractère.
ch.title() transforme la chaine ch dans un format title ch.upper() : affiche toute la chaine ch en majuscule. Le résultat est une nouvelle
isalnum(): retournent True si la chaîne ne contient que des caractères chaine.
alphanumériques(les lettres de A à Z majuscules et minuscules et les chiffres de 0 à 9) et ch.lower() : affiche toute la chaine ch en minuscule. Le résultat est une nouvelle chaine.
qu’il y a au moins un caractère. Si non False ch.split(): divise ou décompose une chaine à l’aide d’un séparateur donné entre
isalpha(): retournent True si la chaîne ne contient que des caractères alphabétiques ((les parenthèse (argument) et ajoute les données dans une liste.
lettres de A à Z majuscules et minuscules) et qu’il y a au moins un caractère. Si non False

23 24
Les chaines de caractères <class ’str’> Les tuples < class ‘tuple’>
Remarque : Les chaînes n’étant pas modifiable il est donc possible de Les tuples (également appelé n-uplet) sont utilisés de façon quasi transparente
migrer vers des listes au moyen de l’instruction suivante list : par Python, ils permettent de créer des séquences de données que l’on ne peut
plus modifier (immutables ou non mutables).
On les écrit simplement séparés par des virgules et entre parenthèses.
Il est même possible, lorsqu'il n’y a pas d’ambiguïté, d’enlever les parenthèses
La boucle for avec les chaines: du tuple.
Saisie d’une chaine ch

Ou bien

Les tuples peuvent être imbriqués :

25 26

Les tuples < class ‘tuple’> Les tuples < class ‘tuple’>
Il y a deux cas particuliers de tuples : La boucle for avec les tuples:
- Les tuples vide qui sont construit avec des parenthèses vide ()
- Les tuples d’un seul élément qui doit contenir une virgule à la fin pour
le distinguer de simples parenthèses de regroupement d’une expression
calculée.
Remarque : Les tuples n’étant pas modifiable il est possible de migrer vers
des listes au moyen de l’instruction suivante list :

27 28
Les ensembles <class ’set’> Comment construire un ensemble

Un ensemble est une collection non ordonnée et mutable


d’objets uniques (sans répétition et sans ordre). Les ensembles sont
donc des structures non indexées (sans numérotage) !
Syntaxe : Ensemble d’objets séparés par des virgules entre {}
L'ensemble vide se note set() et non {} qui crée un dictionnaire !
Accès aux éléments d'un ensemble
Un ensemble paraît trié en interne mais c'est uniquement pour
Les éléments d'un ensemble ne sont pas numérotés. On ne
accélérer la recherche d'un élément :
peut pas utiliser une notation comme e[i] puisque parler de
l'élément numéro i n'a pas de sens !
L'opérateur in permet de savoir si un objet appartient à un
ensemble
L'opération E < F permet de tester si l'ensemble E est
strictement inclus dans l'ensemble F.
29 30

Opérations sur les ensembles Fonctions utiles sur les ensembles

Len(e): donne le nombre d’éléments d’un ensemble e.


e.pop(): permet de retourner et de supprimer un élément
en même temps.
e.add(x): ajouter un élément x à l’ensemble e
e.remove(x): supprimer l’élément x de l’ensemble e.

31 32
Les dictionnaires <class ’dict’> Fonctions utiles sur les dictionnaires
Un dictionnaire (tableau associatif) est un type de données permettant de stocker
des couples cle:valeur, avec un accès très rapide à la valeur à partir de la clé, la
clé ne pouvant être présente qu’une seule fois dans le tableau.
Caractéristiques:
- L’opérateur d’appartenance d’une clé (in)
- La fonction taille (len()) donnant le nombre de couples stockés
- Permet de retrouver un objet par sa clé
- Il est itérable (on peut le parcourir)
- Non ordonné
- Mutable.
-Le dictionnaire vide se note {} ou dict()

33

Fonctions utiles sur les dictionnaires Fonctions utiles sur les dictionnaires
list(d): renvoie la liste de toutes les clés du dictionnaire d dans l’ordre d.keys(): renvoie la séquence des clés utilisées dans le dictionnaire. Cette
d’insertion séquence peut être utilisée telle quelle dans les expressions ou convertie en liste
sorted(d): renvoie une liste des clés triées (par ordre croissant par avec la fonction intégrée list() ou en tuple avec la fonction intégrée tuple().
défaut) d.values(): renvoie la séquence des valeurs utilisées dans le dictionnaire. Cette
sorted(d,reverse=True): renvoie une liste des clés de d triées par séquence peut être utilisée telle quelle dans les expressions ou convertie en liste
ordre décroissant. avec la fonction intégrée list() ou en tuple avec la fonction intégrée tuple().
in: pour lire une clé dans le dictionnaire d.items(): renvoie une liste contenant les couples clé:valeur utilisées dans le
d[x]=y: permet d’ajouter le couple x:y au dictionnaire d ou modifier la dictionnaire sous formes d’un tuple.
valeur d’une clé déjà existante pop(clé): retourne la valeur val associée à la clé et supprime le couple clé:val
du dictionnaire
d[x]: renvoie la valeur de la clé x (si x:y est couple dans d)
d.get(clé): permet de récupérer une valeur dans un dictionnaire et si la valeur
est introuvable , on peut donner une valeur par défaut.
max(d): permet de retourner le maximum des clés.
35 d.update(): met à jour d’un dictionnaire à partir d’un autre dictionnaire 36
Création d’un dictionnaire: Création d’un dictionnaire:
Rq: les clés peuvent être de n'importe quel type immuable ; les Exemple : création d’un
chaînes de caractères et les nombres peuvent toujours être des dictionnaire d{matière:note},
avec comme clé les matières
clés. Les tuples peuvent être utilisés comme clés s'ils ne
(math, physique et chimie) et
contiennent que des chaînes, des nombres ou des tuples ; si un tuple
comme valeurs les notes
contient un objet muable, de façon directe ou indirecte, il ne peut pas attribuées (12,15,14)
être utilisé comme une clé. Les listes ne peuvent pas être utiliser
comme clés, car elles peuvent être modifiées en place en utilisant des
affectations par position, par tranches ou via des méthodes
comme append() ou extend().

37 38

Création d’un dictionnaire: Boucle for avec les dictionnaires


Il est possible de créer des dictionnaires directement à partir d’une On peut récupérer les clés par une boucle for
liste de paires clé-valeur stockées sous la forme de tuples:
Ou bien

Ou bien: On peut récupérer les valeurs par une boucle for

Ou bien, si les clés sont de simples chaînes de caractères, il est parfois


plus simple d’écrire les paires en utilisant des paramètres nommés : On peut récupérer les valeurs par une boucle for

39 40
La fonction enumerate():
Lorsque vous itérez sur une séquence (liste, chaine, tuple, ensemble et
dictionnaire), on peut récupérer la position et la valeur correspondante en même
temps en utilisant la fonction enumerate.
Pour le dictionnaire, la fonction enumerate a assigné la variable compteur
uniquement sur les clés.

41

Vous aimerez peut-être aussi