Les structures de données sont des outils fondamentaux dans la programmation et en Data science. Elles permettent de stocker et organiser les données de manière efficace pour qu’elles puissent être facilement manipulées. En Python, les structures de données les plus couramment utilisées sont :

  • Les listes
  • Les tuples
  • Les dictionnaires
  • Les ensembles (sets)

A. Les listes

Une liste est une collection ordonnée et modifiable qui permet de stocker des éléments de types différents. Les listes sont définies avec des crochets [], et leurs éléments sont séparés par des virgules.

Exemple :

ma_liste = [10, 8.0, « Chat »] fruits = [« Orange », « Banane », « Cérise »]

Vous pouvez ajouter, supprimer ou modifier des éléments. Les éléments gardent l’ordre dans lequel ils ont été ajoutés.

1- Indexation

Pour récupérer un élément dans une liste, on utilise son numéro d’ordre (l’indice) placé entre crochets.

Exemple :

# Accéder à un élément par son index
print(fruits[0]) # Affiche « orange »

Il est aussi possible de mettre à jour des éléments d’une liste grâce à leur indice :

# Modification du 2ème élément de la liste
ma_liste = [1] = 4

L’indexation d’une liste débute à 0. Il est aussi possible d’aller indexer les éléments dans l’ordre inverse, c’est ce qu’on appelle l’indexation négative. Le dernier élément de la liste a pour indice -1.

print(ma_liste[-1]) # Affiche « Chat »

2- Découpage

Il existe un autre type d’indexation possible, le découpage ou slicing en anglais. Le découpage permet de récupérer une sous-liste d’éléments d’une plus grande liste en spécifiant les indices de début et de fin de la sous-liste séparés par le symbole « :« .

ma_liste = [3, 9, « Comment »,-5.8,« ça »,103,« va »]
# Récupération des 4 PREMIERS éléments de ma_liste
premiers_elements = ma_liste[0:4]
print(premiers_elements) # Affiche [3, 9, « Comment », -5.8]

L’élément se trouvant à l’indice de fin du découpage n’est pas inclus dans la sous-liste. En effet, ma_liste[0:4] contient uniquement les éléments aux indices 0, 1, 2 et 3.

Si l’indice de début n’est pas spécifié, alors le découpage contiendra tous les éléments depuis le début jusqu’à l’indice de fin.

# Récupération des 4 PREMIERS éléments de ma_liste
premiers_elements = ma_liste[:4]

De même, si l’indice de fin n’est pas spécifié, alors le découpage contiendra tous les éléments depuis l’indice de début jusqu’à la fin de la liste.

# Récupération des 3 DERNIERS éléments de ma_liste
derniers_elements = ma_liste[-3:]

3- Les méthodes pour les listes

En Programmation Orientée Objet que nous allons aborder dans ce cours, une méthode est une fonctionnalité d’une classe d’objets. Ci-dessus les principales méthodes utilisées sur les listes.

a) La méthode pop()

La méthode pop() de la classe des listes permet de supprimer un élément d’une liste à l’indice spécifié. Elle renvoie la valeur de l’élément qui a été supprimé de la liste :

ma_liste = [7,9,« Comment »,-8,« ça »,103,« va »]
# Suppression et retour de l’élément situé à l’indice 4
ma_liste.pop(4)
# Affichage de la liste
print(ma_liste) # [7, 9, « Comment », -8, 103, « va »]

La syntaxe d’utilisation d’une méthode est très spécifique :

  • L’objet appelant la méthode doit exister au préalable
  • Le nom de la méthode doit être suivi de parenthèses contenant les arguments de la méthode.
  • Le nom de l’objet et la méthode sont séparés par un point.

Si nous voulons enlever les éléments « Comment », « ça » et « va » de la liste ma_liste à l’aide de la méthode pop(), il faut faire :

# Suppression de « Comment » qui se trouve à la 3ème position
ma_liste.pop(2)
# Suppression de « ça » qui se trouve maintenant à la 4ème position
ma_liste.pop(3)
# Suppression de « va » qui se trouve en dernière position
ma_liste.pop(-1)
# Affichage de la liste
print(ma_liste)
💡 À retenir : Attention, les indices de la liste changent une fois qu’un élément a été supprimé.
b) La méthode insert()

La méthode insert() permet d’ajouter une nouvelle valeur à une liste. Elle prend 2 arguments : l’indice où nous voulons insérer la valeur et la valeur que nous voulons insérer.

# Insertion de la valeur « Hello » à l’indice 2
ma_liste.insert(2,« Hello »)

Exemple :

Insérer dans la liste ma_liste les éléments « how », « are » et « you » aux indices appropriés afin que l’affichage de ma_liste soit : [« comment », « how », « ça », « are », « va », « you »]

ma_liste = [7, 9, « Comment »,-8,« ça »,103,« va »]
# Suppression des nombres
ma_liste.pop(0)
ma_liste.pop(0)
ma_liste.pop(1)
ma_liste.pop(2)
# Insertion des éléments « Hello », « how », « are » et « you »
ma_liste.insert(1,« how »)
ma_liste.insert(3,« are »)
ma_liste.insert(5,« you »)
# Affichage de la liste
print(ma_liste)
c) La méthode append()

La méthode append est utilisée pour ajouter un élément à la fin d’une liste. Voici un exemple simple de son utilisation :

# Ajout de l’élément « pour moi » à la fin de la liste
ma_liste.append(« pour moi »)
# Création d’une liste vide
ma_liste = []
# Ajout d’un élément à la liste
ma_liste.append(5)
print(ma_liste) # Affichera [5]
# Ajout d’un autre élément
ma_liste.append(10)
print(ma_liste) # Affichera [5, 10]
d) La méthode extend()

La méthode extend() est utilisée pour ajouter les éléments d’une autre liste (ou d’une autre structure itérable comme un tuple) à la liste actuelle. Contrairement à la méthode append() qui ajoute un élément à la fin de la liste, extend() ajoute chaque élément de l’itérable spécifié à la liste d’origine.

Exemple :

# Liste initiale
list1 = [1,2,3]
# Liste ou itérable à ajouter
list2 = [4,5,6]
# Utilisation de la méthode extend()
list1.extend(list2)
# Affichage de la nouvelle liste
print(list1) # Résultat: [1, 2, 3, 4, 5, 6]

Les éléments de list2 sont ajoutés à la fin de list1. La méthode extend() modifie la liste d’origine et ne retourne pas une nouvelle liste. L’itérable passé à extend() peut être une liste, un tuple, une chaîne de caractères, ou tout objet itérable.

Exemple :

list1 = [‘a’,‘b’,‘c’]
list1.extend(‘de’)
print(list1) # Résultat: [‘a’, ‘b’, ‘c’, ‘d’, ‘e’]

Il est aussi possible d’utiliser l’opérateur +, mais il n’est pas recommandé de l’utiliser car il peut rajouter de l’ambiguïté dans le code lorsque nous ne sommes pas sûrs de travailler avec des nombres ou des listes.

La classe des listes contient encore d’autres méthodes. Les Méthodes que nous avons vues jusqu’à maintenant sont récapitulées dans le tableau ci-dessous :

Méthode Argument Description
pop indice Enlève et retourne l’élément de la liste se trouvant à l’indice renseigné
insert indice, valeur Ajoute un nouvel élément à la liste à l’indice renseigné
append valeur Ajoute la valeur à la fin de la liste
extend liste Fusionne la liste appelant la méthode avec la liste en argument

B. Les tuples

Les tuples sont une structure de données qui ressemble aux listes. Ils sont définis avec ou sans parenthèses. L’indexation d’un tuple est identique à celle d’une liste avec une nuance très importante : les tuples ne sont pas modifiables.

Exemple :

# Création d’un tuple
un_tuple = (1,-5,12)
un_tuple = 1,-5,12
# Affichage du premier élément du tuple
print(un_tuple[0])
>>> 1
# Affichage du dernier élément du tuple
print(un_tuple[-1])
>>> 12

Un atout majeur de la classe tuple est le tuple assignment (assignation par un tuple en français), qui permet d’assigner