EEIA 2022 - Informatique
EEIA 2022
Initiation à la programmation informatique avec Python
Jour 3 : Les structures de données
20 juillet 2022
Fidèle Dégni
Horus Dagnon
Merchrist Kiki
Bénin Excellence | Fondation Vallet
EEIA 2022 - Informatique
Plan
1. Itérables séquentiels
1.1 Les tableaux (listes)
1.2 Les n-uplets
1.3 Les chaînes de caratères
2. Itérables non séquentiels
2.1 Les dictionnaires
Bénin Excellence | Fondation Vallet 2/29
EEIA 2022 - Informatique
Itérables séquentiels
Bénin Excellence | Fondation Vallet 3/29
EEIA 2022 - Informatique
Itérables séquentiels - Définition
On peut les définir comme des conteneurs composés d'un nombre fini d'éléments
auxquels on peut accéder par un indice.
On peut les voir comme un ruban muni d'un curseur qui se déplace et peut lire les
valeurs qui y sont stockées.
Les termes les plus importants à retenir ici sont : conteneurs et indice. L'indice d'un
élément est la position de cet élément dans le conteneur considéré.
Bénin Excellence | Fondation Vallet 4/29
EEIA 2022 - Informatique
Quelques itérables séquentiels
Remarque:
On parle d'itérables parce que ce mot est spécifique au langage Python. En effet, dans
la suite on va étudier ce qu'on appelle des structures de données ou data structure
en anglais.
Bénin Excellence | Fondation Vallet 5/29
EEIA 2022 - Informatique
Quelques itérables séquentiels
Il existe plusieurs itérables séquentiels en python :
les tableaux (ou array en anglais) représentés par le mot-clé list
les n-uplets : tuple
les chaînes de caractères (ou string en anglais) représentés par str
Bénin Excellence | Fondation Vallet 6/29
EEIA 2022 - Informatique
Les tableaux (listes)
Bénin Excellence | Fondation Vallet 7/29
EEIA 2022 - Informatique
Les tableaux (listes)
Un tableau est une suite contiguë de valeurs. c'est un conteneur dont les valeurs
sont l'une à la suite de l'autre, un peu comme un ruban.
Les listes en Python peuvent contenir toute sorte d'objets
Les listes en Python sont dites mutable objects : on peut modifier les éléments
d'une liste.
Pour construire une liste, il faut soit la déclarer en utilisant le mot clé list , soit
utiliser des crochets []
Bénin Excellence | Fondation Vallet 8/29
EEIA 2022 - Informatique
Les tableaux : exemples
animaux = ['girafe', 'tigre', 'singe', 'souris']
tailles = [5, 2.5, 1.75, 0.15]
mixte = ['girafe', 5, 'souris', 0.15]
Bénin Excellence | Fondation Vallet 9/29
EEIA 2022 - Informatique
Les tableaux : indiçage
Un des gros avantages d'une liste est que vous pouvez appeler ses éléments par
leur position.
Ce numéro est appelé indice (ou index) de la liste. Pour récupérer un élément de
la liste grâce à sa position, on utilise la syntaxe suivante : ma_liste[indice]
Atttention :
Soyez très attentifs au fait que les indices d'une liste de n éléments commence à 0 et
se termine à n − 1.
Bénin Excellence | Fondation Vallet 10/29
EEIA 2022 - Informatique
Les tableaux : indiçage
Voyez l'exemple suivant :
animaux : ['girafe', 'tigre', 'singe', 'souris']
indices : 0 1 2 3
Le 1er et le 3ème élément de la liste animaux se récupèrent comme suit :
>>> animaux[0]
'girafe'
>>> animaux[2]
'singe'
Bénin Excellence | Fondation Vallet 11/29
EEIA 2022 - Informatique
Les tableaux : indiçage négatif
Au lieu que l'indice utilisé soit positif, on peut utiliser des indices négatifs comme suit :
liste : ['girafe', 'tigre', 'singe', 'souris']
indices positifs : 0 1 2 3
indices négatifs : -4 -3 -2 -1
Ou encore:
liste : ['A', 'B', 'C', 'D', 'E', 'F']
indices positifs : 1 2 3 4 5 6
indices négatifs : -6 -5 -4 -3 -2 -1
Bénin Excellence | Fondation Vallet 12/29
EEIA 2022 - Informatique
Les tableaux : opérations
Nom Opérateur ou méthode Description
Concaténation + Colle deux listes l’une à la suite de lautre
Duplication × Répéter la liste plusieurs fois
Ajout .append() Rajouter en fin de liste
Tri .sort() Trie une liste
Longueur len Renvoie la longueur d’une liste
Bénin Excellence | Fondation Vallet 13/29
EEIA 2022 - Informatique
Les tableaux : slicing
Des fois, on a besoin de récupérer plus d'un élément du tableau
On peut récupérer chacun d'eux séparément, mais si on veut un sous ensemble,
on peut utiliser le slicing (tranche) en python.
Ainsi, on peut sélectionner une partie d'une liste en utilisant un indiçage construit
sur le modèle [m:n+1] pour récupérer tous les éléments, du me au ne (de
l'élément m inclus à l'élément n + 1 exclu)
Par exemple :
animaux[0:2] renvoie les 2 premiers éléments de la liste animaux i.e.
['girafe', 'tigre']
Bénin Excellence | Fondation Vallet 14/29
EEIA 2022 - Informatique
Les n-uplets
Bénin Excellence | Fondation Vallet 15/29
EEIA 2022 - Informatique
Les n-uplets
Les n-uplets (tuples en anglais) correspondent aux listes à la différence qu'ils sont
immutable, c'est-à-dire non modifiables
Pour construire une tuple, il faut :
soit la déclarer en utilisant des paranthèses ()
soit utiliser le mot-clé tuple
Exemple :
animaux_tuple_direct = ('girafe', 'tigre', 'singe')
Bénin Excellence | Fondation Vallet 16/29
EEIA 2022 - Informatique
Opérations sur les n-uplets
Toutes les opérations précédentes qu'on a vu pour les listes, sont applicables aux
tuples sauf :
la modification d'un élément : mon_tuple[indice] = quelque_chose ne marchera
pas
la méthode append ne marche pas pour les tuples
pour créer un tuple ne contenant que l'élément 1 , on fait : mon_tuple = (1, ) .
Remarquez la virgule , juste après le 1 . À la différence d'une liste où on aurait
ma_liste = [1] .
Bénin Excellence | Fondation Vallet 17/29
EEIA 2022 - Informatique
Quelques autres détails sur les tuples
On peut ajouter des éléments à un tuple ! Pour ce faire, on utilise la concaténation.
mon_tuple = (1, 2)
Pour ajouter 3 au tuple, on fait mon_tuple += (3, )
Ce qui donnera (1, 2, 3)
Bénin Excellence | Fondation Vallet 18/29
EEIA 2022 - Informatique
Les chaînes de caractères
Bénin Excellence | Fondation Vallet 19/29
EEIA 2022 - Informatique
Les chaînes de caractères
C'est le type des données textuelles qu'on appelle souvent chaînes de caractères.
Elles sont très fréquemment utilisées et elles peuvent être écrites de différentes
manières :
Entre guillemets simples. Exemple : 'autorisent les "guillemets"'
Entre guillemets. Exemple : "autorisent les guillemets 'simples'"
Entre guillemets triples. Exemples : '''Trois guillemets simples''' ,
"""Trois guillemets"""
Bénin Excellence | Fondation Vallet 20/29
EEIA 2022 - Informatique
Les chaînes de caractères
Comme pour les list et les tuple , on peut parcourir les string, et faire pleins
d'autres opérations utiles.
On reviendra sur ces points au fur et à mesure qu'on évolue, dans les TP et en cours.
Bénin Excellence | Fondation Vallet 21/29
EEIA 2022 - Informatique
Itérables non séquentiels
Bénin Excellence | Fondation Vallet 22/29
EEIA 2022 - Informatique
Itérables non séquentiels - Définition
Ce sont toujours des conteneurs, mais à la différence des itérables séquentiels,
leurs éléments ne sont pas ordonnés / contiguës
On ne peut pas accéder à leurs éléments en utilisant des indices. On utilise plutôt
ce qu'on appelle des clés.
Bénin Excellence | Fondation Vallet 23/29
EEIA 2022 - Informatique
Les dictionnaires
Les dictionnaires se révèlent très pratiques lorsque vous devez manipuler des
structures complexes à décrire et que les listes présentent leurs limites.
Les dictionnaires sont des collections non ordonnées d'objets, c'est-à-dire qu'il
n’y a pas de notion d'ordre.
On accède aux valeurs d'un dictionnaire par des clés.
Bénin Excellence | Fondation Vallet 24/29
EEIA 2022 - Informatique
Les dictionnaires : exemple
Voici un exemple pour mieux comprendre leur utilité :
girafe = {"nom": "girafe", "taile": 5, "poids": 1100}
tigre = {"nom": "tigre", "taile": 2.5, "poids": 100}
singe = {"nom": "singe", "taile": 1.75, "poids": 70}
souris = {"nom": "souris", "taile": 0.15, "poids": 0.5}
Bénin Excellence | Fondation Vallet 25/29
EEIA 2022 - Informatique
Les dictionnaires : .get()
Pour obtenir le poids de la girafe par exemple, on fait girafe['poids'] et cela
nous renvoie 1100
Pour accéder à une valeur, on utilise une clé (ici on utilise la clé poids )
Si la clé n'existe pas, python renvoie évidemment une erreur
girafe['age'] soulèvera une erreur puisque la clé age n'existe pas dans le
dictionnaire girafe
Bénin Excellence | Fondation Vallet 26/29
EEIA 2022 - Informatique
Les dictionnaires : .get()
La méthode .get() permet de renseigner une valeur par défaut si la clé n'existe
pas.
Ainsi [Link]('poids', 100) renvoie 110 et [Link]('age', 20)
renvoie 20 .
Bénin Excellence | Fondation Vallet 27/29
EEIA 2022 - Informatique
Les dictionnaires : itération
Pour itérer on a le choix entre :
.values() : itérateur sur les valeurs
.keys() : itérateur sur les clés
.items() : itérateur sur les clés et les valeurs à la fois
Bénin Excellence | Fondation Vallet 28/29
EEIA 2022 - Informatique
FIN
Bénin Excellence | Fondation Vallet 29/29