Vous êtes sur la page 1sur 22

Programmation Python 2023-2024

Chapitre 2 : Structures de donné es en Python

Dans ce chapitre, on abordera les principales structures de données utilisées en Python à savoir :

 Les listes ;
 Les dictionnaires ;
 Les tuples ;
 Les sets.

I. Les listes

I.1) Notion d’une liste


En Python, le type list est un type de données qui permet de former une suite ordonnée d’éléments.
Les éléments d’une même liste peuvent être des données de plusieurs types6.
On écrit les éléments d’une liste python entre deux crochets, séparés par des virgules :
Exemple :
groupe = ["abc",51,12,True,"Informatique"]

print (type(groupe))

<class 'list'>

6 La notion de liste en Python est identique à celle dans le langage R, ainsi,


contrairement au langage C/C++, les listes, appelées tableaux, ne peuvent
contenir qu’un seul type de données à la fois
28
Programmation Python 2023-2024

I.2) Opérations sur les listes


I.2.A) Taille d’une liste
Le nombre d’éléments d’une liste s’appelle sa longueur. Elle est renvoyée par la fonction len().
print (len (groupe))

I.2.B) Accès aux éléments d’une liste


Les éléments d’une liste sont repérés par leur indice. Les indices d’une liste commencent à 0. Python
détecte automatiquement l’utilisation d’index invalides et génère une erreur (exception).

Exemple :
print (groupe [3])

True

print (groupe [8])

IndexError: list index out of range

I.2.C) Modification
Pour modifier un élément, il suffit de préciser son indice.
Exemple :
groupe[0]=3.2

print (groupe)

[3.2, 51, 12, True, 'Informatique']

I.2.D) Ajout d’éléments


On peut ajouter un élément à la fin d’une liste grâce à la méthode append().
groupe.append("classe")

29
Programmation Python 2023-2024

print (groupe)

['abc', 51, 12, True, 'Informatique', 'classe']

I.2.E) Suppression d’un élément


On peut supprimer un élément grâce aux méthodes pop() ou remove().

I.2.E.a) La méthode pop()

Par défaut, elle permet de supprimer le dernier élément d’une liste, sinon, il faut préciser l’indice de
l’élément à supprimer.

Exemple :
print (groupe.pop())

classe

print (groupe.pop (0))

# Le premier élément sera supprimé

3.2

print (groupe)

[51, 12, True, 'Informatique']

I.2.E.b) La méthode remove()

Cette méthode doit recevoir en paramètres la valeur de l’élément à supprimer.


Exemple :
groupe.remove (51)

print (groupe)

[12, True, 'Informatique']

I.2.F) Test d’appartenance


On peut tester l’appartenance d’un élément à une liste grâce à l’opérateur in.

30
Programmation Python 2023-2024

Exemple :
print (36 in groupe)

False

I.2.G) Inverser les éléments d’une liste


Pour inverser les éléments d’une liste, on utilise la fonction reverse().
Exemple :
liste = [1,2,3,4]

liste.reverse()

print (liste)

[4, 3, 2, 1]

I.2.H) Itérations
Il y a deux méthodes pour afficher les valeurs d’une liste avec une boucle for :

I.2.H.a) Itérer sur les éléments de la liste


Exemple :
for e in groupe:

print (e)

12

True

Informatique

I.2.H.b) Itérer sur les indices des éléments de la liste

C’est-à-dire sur une suite d’entiers : On accède à la totalité de la liste ou à un sous-ensemble.


Exemple 1 :
for k in range(3): # 3 c’est la taille de la liste

print (groupe [k])


31
Programmation Python 2023-2024

12

True

Informatique

Exemple 2 :
liste = [5,6,7,8]

for x in range(1,3): #Accès aux éléments d’indice 1 et 2

print (liste[x])

I.3) Listes de listes


Il est possible de construire des listes de listes. Cette fonctionnalité peut parfois être très pratique.

Exemple :
enfant1 = ["Sami" , 8]

enfant2 = ["Nada" , 10]

enfant3 = ["Hedi" , 11]

ecole = [ enfant1 , enfant2 , enfant3]

print (ecole)

[['Sami', 8], ['Nada', 10], ['Hedi', 11]]

Pour accéder à un élément de la liste, on utilise l’indiçage classique :


print (ecole[2])

→ ['Hedi', 11]

Pour accéder à un élément de la sous-liste, on utilise un double indexage :


32
Programmation Python 2023-2024

print (ecole[0][0])

print (ecole[0][1])

→ Sami

I.4) Copie de liste


Il est important de noter que l’affectation d’une liste (à partir d’une liste préexistante) crée en réalité une
référence et non une copie. Ainsi, si l1 est une liste, l’instruction l2= l1 permet de créer une deuxième liste
l2 identique à la liste l1 ; mais toute modification dans la liste l1 sera réalisée aussi sur la liste l2.

Pour éviter ce problème, il va falloir créer une copie explicite de la liste initiale comme suit :
l1 = [1,2,3]

l2 = l1 [:]

l1 [1] = 10

print (l1)

print (l2)

[1,10,3]

[1,2,3]

I.5) Applications
I.5.A) Application 1
Créer une liste contenant les données relatives à 5 personnes : On désire
mettre les informations suivantes :

 Le nom

 L’âge

33
Programmation Python 2023-2024

 La ville

 La spécialité d’études

lis = [] #Initialisation d’une liste vide

for i in range (5):

a=input("Donner le nom\n")

b=input("Donner l'age\n")

c=input("Donner la ville\n")

d=input("Donner la spécialite\n")

l=[a,b,c,d] # liste temporaire

lis.append(l) #Insertion dans la liste finale

print (lis) #Affichage

I.5.B) Application 2
Écrire un programme Python qui permet de lire un entier puis afficher son équivalent en binaire.

II. Les dictionnaires

II.1) Notion d’un dictionnaire


Les éléments d’une liste sont ordonnés et on accède à un élément grâce à sa position en utilisant un
numéro qu’on appelle l’indice de l’élément.

Un dictionnaire en Python va aussi permettre de rassembler des éléments mais ceux-ci


seront identifiés par une clé. On peut faire l’analogie avec un dictionnaire où on accède à une définition
avec un mot.
Contrairement aux listes qui sont délimitées par des crochets, on utilise des accolades pour les
dictionnaires.
Exemple :
dict = {

34
Programmation Python 2023-2024

"module" : "Programmation Python",

"niveau" : "1ere année",

"coefficient" : 1.5

print(dict)

→ {'module': 'Programmation Python', 'niveau': '1ere année',


'coefficient': 1.5}

En premier, on définit un dictionnaire vide avec les accolades {} (tout comme on peut le faire pour les listes
avec []).

Ensuite, on remplit le dictionnaire avec différentes clés ("module", "niveau", "coefficient")


auxquelles on affecte des valeurs (« Programmation Python », « 1ere année » , 1.5).

II.2) Accès aux éléments d’un dictionnaire


Il est possible d’accéder aux éléments d’un dictionnaire en se référant à leur clé, entre crochets [].

Exemple :
Récupération de la valeur de la clé niveau :
print (dict["niveau"])

→ 1ere année

Il est aussi possible d’utiliser la méthode get() qui donne le même résultat :
print (dict.get("niveau"))

→ 1ere année

II.3) Changer les valeurs d’un dictionnaire


Il est possible de modifier la valeur d’un élément spécifique en se référant à sa clé. L’exemple
suivant change la valeur de clé coefficient :

dict ["coefficient"]=2

print (dict)

35
Programmation Python 2023-2024

{'module': 'Programmation Python', 'niveau': '1ere année',


'coefficient': 2}

II.4) Parcours d’un dictionnaire


II.4.A)La boucle for
Il est possible de parcourir les éléments d’un dictionnaire en utilisant une boucle for.
Lorsqu’on parcourt un dictionnaire, les valeurs de retour sont les clés du dictionnaire, mais il existe
également des méthodes pour renvoyer les valeurs.

L’exemple suivant affiche toutes les clés du dictionnaire :


for key in dict:

print(key)

→ module

niveau

coefficient

L’exemple suivant affiche tous les valeurs du dictionnaire :


for key in dict:

print(dict[key])

→ Programmation Python

1ere année

II.4.B)La méthode values()


Il est aussi possible d’utiliser la méthode values() pour renvoyer les valeurs d’un dictionnaire
:
for val in dict.values():

print(val)

→ Programmation Python

36
Programmation Python 2023-2024

1ere année

II.4.C)La méthode items()

Il est possible de parcourir les clés et les valeurs à l’aide de la méthode items() :
for key, value in dict.items():

print(key, value)

→ module Programmation Python

niveau 1ere année

coefficient 2

II.5) Vérification de l’appartenance d’une clé à un dictionnaire


Pour déterminer si une clé spécifiée est présente dans un dictionnaire, on utilise le mot clé
in. L’exemple suivant vérifie si la clé « note » est présente dans le dictionnaire :
if "note" in dict:
print("La clé note existe dans le dictionnaire")
else:
print ("Pas de clé appelée note!")

→ Pas de clé appelée note!

II.6) Longueur d’un dictionnaire


Pour déterminer le nombre d’éléments d’un dictionnaire, on utilise la fonction len().
Exemple :
print (len (dict))

→ 3

II.7) Ajout d’éléments à un dictionnaire


L’ajout d’un élément à un dictionnaire se fait en utilisant une nouvelle clé et en lui affectant une valeur.
37
Programmation Python 2023-2024

Exemple :
dict ["volume horaire"]= "42 heures"

print (dict)

{'module': 'Programmation Python', 'niveau': '1ere année',


'coefficient': 2, 'volume horaire': '42 heures'}

II.8) Suppression d’un élément d’un dictionnaire


Il existe plusieurs méthodes pour supprimer des éléments d’un dictionnaire :

II.8.A) La méthode pop()


La méthode pop() supprime l’élément avec la clé spécifiée :
Exemple :
dict.pop ("niveau")

print (dict)

→ {'module': 'Programmation Python', 'coefficient': 2}

II.8.B) La méthode popitem()


La méthode popitem() supprime le dernier élément inséré.
Exemple :
dict.popitem()

print (dict)

→ {'module': 'Programmation Python'}

Remarque :
Dans les versions antérieures de Python 3.7, la méthode popitem() supprime un élément aléatoire.

II.8.C)La méthode del()


La méthode del() supprime l’élément avec la clé spécifiée.
Exemple :

38
Programmation Python 2023-2024

del (dict ["module"])

print (dict)

→ {}

II.8.D) La méthode clear()


La méthode clear() vide le dictionnaire.
Exemple :
dict = {

"module" : "Programmation Python",

"niveau" : "1ere année",

"coefficient" : 2

dict.clear()

print (dict)

→ {}

II.9) Copie d’un dictionnaire


Comme pour les listes, on ne peut pas copier un dictionnaire en tapant la commande dict2 = dict1, car
dict2 ne sera qu’une référence à dict1, et les modifications apportées dans dict1 seront automatiquement
apportées dans dict2.
Il existe une façon pour faire une copie, elle consiste à utiliser la méthode copy() :
Exemple :
dict2 = dict.copy()

print (dict2)

→ {'module': 'Programmation Python', 'niveau': '1ere année',


'coefficient': 2}

39
Programmation Python 2023-2024

II.10) Mise à jour d’un dictionnaire


Pour mettre à jour un dictionnaire à partir d’un autre, on peut utiliser la function update():
Exemple :
d1 = {"A": (1,2), "B": (5, 3)}
d2 = {"O": (0, 0), "B": (-5, -3)}
d1.update(d2)
print(d1)

→ {'A': (1, 2), 'B': (-5, -3), 'O': (0, 0)}

II.11) Méthodes de dictionnaire


Le tableau ci-dessous représente les différentes méthodes appliquées sur les dictionnaires :

MÉTHODE DESCRIPTION
clear() Supprimer tous les éléments du dictionnaire

copy() Retourne une copie superficielle du dictionnaire

fromkeys(seq[, v]) Renvoie un nouveau dictionnaire avec les clés de seq et


une valeur égale à v (la valeur par
défaut est None)

get(clé[, d]) Renvoie la valeur de la clé. Si la clé n’existe pas,


retourne d (la valeur par défaut est None)

items() Renvoie une nouvelle vue des éléments du


dictionnaire (clé, valeur)

keys() Renvoie une nouvelle vue des clés du


dictionnaire

pop(clé[, d]) Supprimer l'élément avec "clé" et renvoi sa valeur


ou "d" si "clé" est introuvable. Si "d"
n’est pas fourni et que "key" n’est pas trouvé,
KeyError est levé

popitem() Supprimer le dernier élément du dictionnaire.


Renvoi KeyError si le dictionnaire est vide

setdefault(clé[, d]) Si "clé" est dans le dictionnaire, retourne sa valeur.


Sinon, insère "key" avec la valeur "d" et
renvoi "d" (la valeur par défaut est None)

40
Programmation Python 2023-2024

update([dict]) Mettre à jour le dictionnaire avec les paires


clé/valeur de dict en remplaçant les
clésexistantes.

values () Renvoi une nouvelle vue des valeurs du dictionnaire

Tableau 3: Principales méthodes appliquées sur les dictionnaires

III. Les tuples

III.1) Notion d’un tuple


Un tuple est une séquence immuable d’objets. Les tuples sont des séquences, tout comme les listes.

On distingue deux différences entre les listes et les tuples :


 Les tuples ne peuvent pas être modifiés contrairement aux listes ;
 Les tuples utilisent des parenthèses (), tandis que les listes utilisent des crochets [].

III.2) Création d’un tuple


Afin de créer un tuple, il suffit de mettre les valeurs séparées par des virgules entre
parenthèses.
Exemple :
t= ("Python", "R", "C++", "Green", 3.14, 13)

print (t)

→ ('Python', 'R', 'C++', 'Green', 3.14, 13)

print (type (t))

→ <class 'tuple'>

Notons qu’il est aussi possible de ne pas utiliser les parenthèses :


tp="Python", "R", "C++", "Green", 3.14, 13

print (tp)

→ ('Python', 'R', 'C++', 'Green', 3.14, 13)

41
Programmation Python 2023-2024

print (type (tp))

→ <class 'tuple'>

III.3) Accès aux éléments d’un tuple


III.3.A) Accès par indice
Afin d’accéder à un élément d’un tuple, il suffit de préciser son indice entre crochets.
Exemple :
print (t[2])

C++

III.3.B) Indexation négative


L’indexation négative signifie une indexation initialisée à partir du dernier élément du tuple. Ainsi, -1 se
réfère au dernier élément, -2 se réfère à l’avant-dernier élément, etc.

L’exemple suivant affiche le dernier élément de tuple :


print (t[-1])

13

III.3.C) Notion de plage d’index


Il est possible de définir une plage d’index en spécifiant l’indice de début et l’indice de la fin de la plage.
Lors de la spécification d’une plage, la valeur de retour sera un nouvel tuple avec les éléments
spécifiés.

Exemple :
Renvoi du deuxième, troisième et quatrième éléments :
print(t[1:4])

→ ('R', 'C++', 'Green')

Notons que la recherche commencera à l’index 1 et se terminera à l’index 4 (non inclus). Si on ignore
la valeur de départ, la plage commencera au premier élément.

Exemple :

42
Programmation Python 2023-2024

print(t[:4])

→ ('Python', 'R', 'C++', 'Green')

De même, en ignorant la valeur de fin, la plage ira à la fin du tuple.


Exemple :
print(t[1:])

→ ('R', 'C++', 'Green', 3.14, 13)

III.3.D) Plage d’index négative


Il est possible de spécifier des plages d’index négatives si on souhaite commencer la recherche à
partir de la fin du tuple.

Exemple :
Afficher les éléments de l’index -5 (inclus) à l’index -2 (exclu) :
print(t[-5:-2])

→ ('R', 'C++', 'Green')

III.4) Modifier la valeur d’un tuple


Un tuple est, par définition, immuable. Ainsi, une fois créé, il est impossible de modifier ses valeurs. En
fait, il existe une astuce permettant de modifier le contenu d’un tuple : il suffit de convertir le tuple en
liste, modifier la liste et reconvertir la liste en tuple.

Exemple :
t=("Python", "R", "C++", "Green", 3.14, 13)
print (type (t))
→ <class 'tuple'>
#convertir tuple en liste

l = list(t)

print (type (l))

→ <class 'list'>

l[2]= "SQL"

43
Programmation Python 2023-2024

#convertir liste en tuple t

= tuple(l)

print (type (t))

→ <class 'tuple'>

#afficher le tuple

print (t)

→ ('Python', 'R', 'SQL', 'Green', 3.14, 13)

III.5) Parcourir un tuple en Python


Il est possible de parcourir les éléments du tuple en utilisant une boucle for. L’exemple
suivant affiche tous les éléments du tuple, un par un :

t=("Python", "R", "C++", "Green", 3.14, 13)

for i in t:

print (i)

Python

R C++

Green

3.14
13

III.6) Vérifier si un élément existe dans un tuple


Pour déterminer si un élément spécifié est présent dans un tuple, on utilise le mot clé in. L’exemple
suivant vérifie si le langage « java » est présent dans le tuple :

t=("Python", "R", "C++", "Green", 3.14, 13)

if "Java" in t:
print ("Cet élément existe dans le tuple")

44
Programmation Python 2023-2024

else:
print ("Cet élément n'existe pas dans le tuple")

→ Cet élément n'existe pas dans le tuple

III.7) Longueur d’un tuple


Pour déterminer le nombre d’éléments d’un tuple, on utilise la fonction len(). L’exemple suivant
affiche le nombre d’éléments dans le tuple :
print(len(t))

→ 6

III.8) Supprimer un élément d’un tuple


Les tuples sont immuables, on ne peut pas en supprimer des éléments, mais la seule possibilité
est de supprimer complètement le tuple grâce à la fonction del().

Exemple :
t=("Python", "R", "C++", "Green", 3.14, 13)

del (t)

→ Tuple supprimé

IV. Les sets

IV.1) Notion d’un set


Un set est une collection d’éléments non ordonnée. Chaque élément du set est unique (pas de doublons)
et doit être immuable. Pourtant, un set peut être modifiable. Ainsi, il est possible d’ajouter ou de
supprimer des éléments.
Les sets peuvent être utilisés pour effectuer des opérations mathématiques comme l’union,
l’intersection, la différence symétrique, etc.

IV.2) Création d’un set


En Python, les sets sont écrits avec des accolades. L’exemple suivant permet de créer un set :
s={"blue", "red","black", "yellow"}

45
Programmation Python 2023-2024

print (type (s))

→ <class 'set'>

print (s)

→ {'red', 'black', 'yellow', 'blue'}

IV.3) Modification d’un set


Une fois crée, un set ne peut pas être modifié.

IV.4) Ajout d’éléments à un set


Pour ajouter un élément à un set, on peut utiliser deux méthodes :

 Ajout d’un seul élément ;

 Ajout de plusieurs éléments.

IV.4.A) Ajout d’un élément


Pour ajouter un seul élément à un set, on utilise la méthode add().
Exemple :
s={"blue", "red","black", "yellow"}

s.add("green")

print (s)

{'red', 'blue', 'black', 'yellow', 'green'}

IV.4.B) Ajout de plusieurs éléments


Pour ajouter plusieurs éléments à un set, on utilise la méthode update().

Exemple :
s={"blue", "red","black", "yellow"}

s.update(["white", "pink", "cyan"])

print (s)

{'red', 'blue', 'black', 'yellow', 'cyan', 'white', 'pink'}


46
Programmation Python 2023-2024

IV.5) Vérifier si un élément existe dans un set


Pour déterminer si un élément spécifié est présent dans un set, on utilise le mot clé in. L’exemple
suivant vérifie si « blue » est présent dans le set :
s={"blue", "red","black", "yellow"}

print("blue" in s)

True

IV.6) Taille d’un set


Pour déterminer le nombre d’éléments d’un set, on utilise la fonction len().
Exemple :
s={"blue", "red","black", "yellow"}

print (len (s))

IV.7) Supprimer un élément d’un set


La suppression d’un élément d’un set peut se faire par l’une des trois méthodes suivantes :

 La méthode remove() ;

 La méthode discard() ;

 La méthode pop().

IV.7.A) La méthode remove()


Si l’élément à supprimer n’existe pas, la méthode remove() déclenchera une erreur.
Exemple :
s={"blue", "red","black", "yellow"}

s.remove("yellow")

print (s)
47
Programmation Python 2023-2024

→ {'red', 'black', 'blue'}

s.remove ("white")

print (s)

Traceback (most recent call last):

File "/home/ahmed/.config/spyder-py3/temp.py", line 4, in


<module>

s.remove("white")

KeyError: 'white'

IV.7.B) La méthode discard()


Contrairement à remove(), si l’élément à supprimer n’existe pas, la méthode discard() ne déclenchera
pas une erreur.
Exemple :
s={"blue", "red","black", "yellow"}

s.discard("yellow")

print (s)

→ {'red', 'black', 'blue'}

s.discard ("white")

print (s)

→ {'red', 'black', 'blue'}

IV.7.C)La méthode pop()


Comme pour les listes, la méthode pop() permet de supprimer le dernier élément d’un set. Notons que
les sets ne sont pas ordonnés, donc on ne peut pas connaître d’avance quel élément sera supprimé.

Exemple :
s={"blue","red","black", "yellow"}

48
Programmation Python 2023-2024

s.pop()

print (s)

{'black', 'yellow', 'blue'}

IV.8) Vider un set


La méthode clear() permet de vider un set.

Exemple :
s={"blue","red","black", "yellow"}

s.clear()

print (s)

→ set()

IV.9) Supprimer un set


La suppression d’un set se fait par la méthode del().
Exemple :
s={"blue","red","black", "yellow"}

del (s)

print (s)

→ NameError: name 's' is not defined

49

Vous aimerez peut-être aussi