Tutoriel Python : maîtriser les listes

Table des matières

Introduction

Définir une liste « list »

Création d’une liste « list »

Les crochets [ ]

La fonction intégrée list()

Création d’une liste vide

Les propriétés des listes sur Python

L’ordre des éléments d’une liste

Accéder aux éléments d’une liste

Accéder à un élément d’une liste par index

Accéder à plusieurs éléments d’une liste par index

Définir l’index d’un élément

Modifier un élément d’une liste

Quelques fonctions prédéfinies utiles

Ajouter un élément à la fin d’une liste

Insérer un élément dans une liste

Supprimer un élément d'une liste

Suppression d’un élément par index

Suppression d’un élément ou d’une liste

Vider une liste

L’appartenance d’un élément dans une liste

Définir la longueur d’une liste

Regrouper plusieurs listes

Trier une liste

Inverser l’ordre d’une liste

Définir le maximum et le minimum des éléments d’une liste

Compter les éléments ayant une valeur précisée

Exercice d’application

Correction de l’exercice d’application

Conclusion

Introduction :

Il existe plusieurs moyens prédéfinis sur Python pour stocker des données : les dictionnaires, les tuples, les ensembles, ainsi que les listes, ces derniers sont considérées un des types les plus populaires et les plus utiles qu’il est possible de les trouver dans plusieurs programmes.

Sur ce tutoriel, on va introduire en premier temps comment créer des listes et aussi leurs propriétés, par la suite, on va présenter quelques fonctions intégrées pour pouvoir les manipuler et analyser plusieurs données.

Définir une liste « list » :

Une des structures de collection de données sur Python sont : les listes ou lists en anglais. Dans cette partie, on va introduire comment créer une liste sur Python.

Création d’une liste « list » :

Une liste aide à stocker plusieurs valeurs dans une variable et il peut s'agir d'une chaîne de caractères, d'un entier, d’une autre liste, ou de tout type de données.

Afin de définir une liste sur Python, on utilise des crochets [ ], ou bien, la fonction intégrée list().

Les crochets [ ] :

On peut stocker des données en les introduisant entre deux crochets [ ] tout en les séparant par une virgule.

Exemple :

Syntaxe :

# Création d'une liste :
liste = [15, 195, "Python", "a", 5 print("les données stockées dans la liste sont : ", liste)
print(type(liste))

Résultat d’exécution :

La fonction intégrée list() :

La fonction intégrée list() permet aussi de créer une liste, ainsi, de convertir un itérable (un ensemble, un dictionnaire, ou un tuple) en une liste, et permet aussi de décomposer les caractères d’une chaine de caractères dans une liste.

Exemple :

Syntaxe :

# Création d'une liste :
# Décomposition d'une chaine de caractères :
liste1 = list("Python")
print("les données stockées dans liste1 sont : ", liste1)
print("liste1 ->", type(liste1))
# Convertir un ensemble en une liste :
ensemble = {156, 65, 966}
print("ensemble ->", type(ensemble))
listeC = list(ensemble)
print("les données stockées dans listeC sont : ", listeC)
print("listeC ->", type(listeC))

Résultat d’exécution : 

Création d’une liste vide :

Il est possible de créer une liste vide sur Python en utilisant la fonction intégrée list(), ou bien, en utilisant des crochets vides.

Exemple :

Syntaxe :

# Création d'une liste vide :
liste_vide1 = list()
liste_vide2 = []
print("les données stockées dans liste_vide1 sont : ", liste_vide1)
print("les données stockées dans liste_vide2 sont : ", liste_vide2)
print(type(liste_vide1))
print(type(liste_vide2))

Résultat d’exécution :

Les propriétés des listes sur Python :

Sur Python, les éléments d’une liste sont ordonnés, indexés et modifiable, on va introduire ces notions et ces propriétés dans cette partie.

L’ordre des éléments d’une liste :

Les éléments d’une liste sont ordonnés, c’est-à-dire, lors de l’affichage des éléments d’une liste, ils vont se présenter par l’ordre dans lequel on les a attribués.

Exemple :

Syntaxe :

# Affichage d'une liste :
liste = ["élément0", "élément1", "élément2", "élément3"]
print(liste)

Résultat d’exécution :

Accéder aux éléments d’une liste :

Accéder à un élément d’une liste par index :

Il est possible d’accéder aux éléments d’une liste, tout en les appelant par leur index.

Soit une liste de n éléments, le premier élément de la liste aura comme index 0, et le dernier élément n-1.

Par ailleurs, il est aussi possible d’accéder à un élément de la liste par index inversé, c’est-à-dire ; le dernier élément aura comme index -1, et le premier élément -n.

Exemple :

Syntaxe :

liste = ["élément0", "élément1", "élément2", "élément3"]
# Accéder à un élément d'une liste par index :
print("le premier élément de la liste est :", liste[0])
print("le dernier élément de la liste est :", liste[3])
# Accéder à un élément d'une liste par index inversé :
print("")
print("le premier élément de la liste est :", liste[-4])
print("le dernier élément de la liste est :", liste[-1])

Résultat d’exécution :

Accéder à plusieurs éléments d’une liste par index :

Il est possible d’accéder à plusieurs éléments d’une liste en définissant leur intervalle d’index [a,b[ tel que [a : b] (avec b non inclue), avec a est prédéfinie par l’index 0, et b prédéfinie par le dernier index de la liste.

Exemple :

Syntaxe :

liste = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]
# Accéder à plusieurs éléments d'une liste :
print("[0,10[ -> ", liste[:10])
print("[10,13] -> ", liste[10:])
print("[2,5[ -> ", liste[2:5])

Résultat d’exécution :

Définir l’index d’un élément :

La fonction index() renvoie le premier élément possédant la valeur mise comme argument.

Exemple :

Syntaxe :

# Définir l'index d'un élément d'une liste :
liste = [12, 5, 5, 64, 48, 54, 65, 48, 48, 48, 65, 66]
print ("l'index de l'élément ayant la valeur 48 est : ", liste.index(48))

Résultat d’exécution :

Modifier un élément d’une liste :

Pour réaffecter une valeur à un élément d’une liste, on utilise une méthode similaire à celle pour accéder un élément d’une liste.

Exemple :

Syntaxe :

# Affichage d'une liste :
liste = ["élément0", "élément1", "élément2", "élément3"]
# On modifie le deuxième élément de la liste :
liste[1] = "élément modifié"
print(liste)

Résultat d’exécution :

Quelques fonctions prédéfinies utiles :

Ajouter un élément à la fin d’une liste :

La fonction intégrée append() permet d’ajouter un élément à la fin d’une liste.

Exemple :

Syntaxe :

# Ajouter un élément à la fin d'une liste :
liste = ["élément0", "élément1", "élément2", "élément3"]
liste.append("élément ajouté")
print(liste)

Résultat d’exécution :

Insérer un élément dans une liste :

Pour insérer un élément dans une position donnée dans une liste, on utilise la fonction intégrée insert() ayant comme premier argument l’index, et comme deuxième argument la valeur de l’élément qu’on veut insérer.

Exemple d'ajout de plusieurs éléments dans un ensemble :

Syntaxe :

# Exemple d'insertion d'un élément dans une liste :
liste = ["élément1", "élément2", "élément3", "élément4"]
liste.insert(2, "élément inséré")
print(liste)

Résultat d’exécution :

Supprimer un élément d'une liste :

Suppression d’un élément par index :

La fonction intégrée pop() permet de retirer un élément d’une liste en posant comme argument l’index de l’élément, si l’index n’est pas spécifié, le dernier élément de la liste sera supprimé.

Exemple :

Syntaxe :

# Exemple de suppression d'un élément avec la fonction pop() :
liste = ["élément1", "élément2", "élément3", "élément4"]
liste.pop()
print(liste)
liste.pop(1)
print(liste)

Résultat d’exécution :

Suppression d’un élément ou d’une liste :

L’opérateur del sert à supprimer toute une liste ou une partie d’une liste (un seul élément ou plusieurs).

Exemple 1 :

Syntaxe :

# Exemple de suppression d'un élément d'une liste :
liste = ["élément1", "élément2", "élément3", "élément4"]
del liste[1]
print(liste)

Résultat d’exécution :

Exemple 2 :

Syntaxe :

# Exemple de suppression de plusieurs éléments d'une liste :
liste = ["élément1", "élément2", "élément3", "élément4"]
del liste[1:3]
print(liste)

Résultat d’exécution : 

Exemple 3 :

Syntaxe :

# Exemple de suppression d'une liste :
liste = ["élément1", "élément2", "élément3", "élément4"]
del liste
# l'expression 'del liste' va supprimer la variable 'liste'
# ce qui engendra une erreur lors de son affichage :
print(liste)

Résultat d’exécution : 

Vider une liste :

Afin de de retirer tout les éléments d’une liste, et la redéfinir comme liste vide, on utilise la fonction intégrée clear().

Exemple :

Syntaxe :

# Exemple de suppression des éléments d'une liste :
liste = ["élément1", "élément2", "élément3", "élément4"]
liste.clear()
print(liste)

Résultat d’exécution : 

L’appartenance d’un élément dans une liste :

L’instruction in permet de vérifier l’appartenance d’une valeur dans une liste, elle renvoie une valeur booléenne : True, si l’élément appartient à la liste, et False, si l’élément n’appartient pas à la liste.

Exemple :

Syntaxe :

# Exemple de test d'appartenance d'un élément dans une liste :
liste = ["élément1", "élément2", "élément3", "élément4"]
print ("élément2 appartient-il à la liste ?", "élément2" in liste)
print ("élément7 appartient-il à la liste ?", "élément7" in liste)

Résultat d’exécution : 

Définir la longueur d’une liste :

La fonction intégrée len() détermine et renvoie la valeur du nombre des éléments stockés dans une liste.

Exemple :

Syntaxe :

# Exemple de detérmination de la longueur d'une liste :
liste = ["élément1", "élément2", "élément3", "élément4"]
print (len(liste))

Résultat d’exécution : 

Regrouper plusieurs listes :

Il est possible de réunir plusieurs listes en utilisant l’opérateur de l’addition +, ou bien en utilisant la fonction intégrée extend().

Exemple :

Syntaxe :

# Regrouper plusieurs listes :
liste1 = [19, 25, 23, 64, 45, 16]
liste2 = [11, 15, 16, 94, 64]
liste3 = [65, 23, 94, 15, 65, 41, 26, 25]
print (liste1 + liste2 + liste3)

Résultat d’exécution : 

Exemple 2 :

Syntaxe :

# Regrouper deux listes en utilisant la fonction extend() :
liste1 = [19, 25, 23, 64, 45, 16]
liste2 = [11, 15, 16, 94, 64]
liste1.extend(liste2)
print (liste1)

Résultat d’exécution : 

Trier une liste :

La fonction intégrée sort() permet de trier une liste.

Exemple :

Syntaxe :

# Trier une liste :
liste = [19, 25, 23, 64, 45, 16, 55, 81, 3, 95, 16]
liste.sort()
print (liste)

Résultat d’exécution : 

Inverser l’ordre d’une liste :

Pour inverser l’ordre des éléments stockés dans une liste, on utilise la fonction intégrée reverse().

Exemple :

Syntaxe :

# Inverser l'ordre d'une liste :
liste = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
liste.reverse()
print (liste)

Résultat d’exécution : 

Définir le maximum et le minimum des éléments d’une liste :

Afin de définir l’élément ayant la plus grande valeur, on utilise la fonction intégrée max().

Ainsi, pour définir l’élément ayant la plus petite valeur, on utilise la fonction intégrée min().

Exemple :

Syntaxe :

# Définir la valeur maximale et minimale d'une liste :
liste = [15, 2, 9, 35, 45, 87, 12, 95, 56, 65, 78 , 65, 35]
print ("la valeur maximale de la liste est :", max(liste))
print ("la valeur minimale de la liste est :", min(liste))

Résultat d’exécution : 

Compter les éléments ayant une valeur précisée :

On utilise la fonction intégrée count() pour compter le nombre de fois qu’une valeur est apparue dans une liste.

Exemple :

Syntaxe :

# Compter l'apparition d'une valeur dans une liste
liste = [15, 2, 9, 35, 45, 87, 12, 95, 45, 65, 78 , 65, 45]
print ("le nombre de fois que la valeur 45 est apparue dans la liste est :")
print (liste.count(45))
print ("le nombre de fois que la valeur 65 est apparue dans la liste est :")
print (liste.count(65))

Résultat d’exécution : 

Exercice d’application :

Vers la fin d’une année scolaire, une école veut évaluer les performances de ses trois classes selon les notes de ses élèves : 2-ème

  • ·Classe 1 ont eu les notes : 12, 13, 18, 6, 7, 15, 15, 15.5, 19, 13.5, 17, 13.
  • ·Classe 2 ont eu les notes : 15, 14, 9, 15, 8, 8, 8.5, 14, 13, 18, 11.5, 13.
  • ·Classe 3 ont eu les notes : 11, 16, 18, 16, 19, 16, 13, 11, 10, 10.5, 6.5, 9.5, 7.

En utilisant Python :

  1. Créez trois listes contenant les notes des trois classes.
  2. Déterminez le nombre d’élèves dans chaque classe.
  3. Déterminez la note maximale et minimale par rapport à toutes les notes des deux classes : classe 1 et classe 3.
  4. Vérifiez chaque classe si elle contient un élève ayant la note maximale entre les trois classes.
  5. Ajoutez la note 13.5 dans la classe 2 et créez une liste contenant toutes les notes des trois classes.
  6. Ajoutez à la liste une classe 4 avec les notes 12, 16, 12.5, 15, 13, 14, 14.5, 8, 5.5, 9, 13, et affichez les notes des quatre classes par ordre croissant.
  7. Déterminez le nombre d’élèves qui ont eu la note 13 dans toutes les quatre classes.
  8. Inversez l’ordre de la liste contenant toutes les notes des quatre classes et affichez cette liste.
  9. Déterminez le classement de l’élève ayant la note 15.5 par rapport aux quatre classes.

Correction de l’exercice d’application :

Syntaxe :

# 1-ére question : Création des trois listes :
classe1 = [12, 13, 18, 6, 7, 15, 15, 15.5, 19, 13.5, 17, 13]
classe2 = [15, 14, 9, 15, 8, 8, 8.5, 14, 13, 18, 11.5, 13]
classe3 = [11, 16, 18, 16, 19, 16, 13, 11, 10, 10.5, 6.5, 9.5, 7]
# 2-ème question : Déterminer le nombre d'élèves dans chaque classe :
print("le nombre d'élève dans la classe 1 est : ", len(classe1))
print("le nombre d'élève dans la classe 2 est : ", len(classe2))
print("le nombre d'élève dans la classe 3 est : ", len(classe3))
# 3-ème question : Déterminer la note maximale et minimale dans toutes les deux classes : classe 1 et 3 :
print()
print("la note maximale dans toutes les deux classes 1 et 3 est :", max(classe1 + classe3))
print("la note minimale dans toutes les deux classes 1 et 3 est :", min(classe1 + classe3))
# 4-ème question : Déterminer lesquelles des classes ont eu la note maximale :
note_max = max(classe1 + classe2 + classe3)
print()
print("la classe 1 contient l'éléve ayant la note maximale :", note_max in classe1)
print("la classe 2 contient l'éléve ayant la note maximale :", note_max in classe2)
print("la classe 3 contient l'éléve ayant la note maximale :", note_max in classe3)
# 5-ème question : Ajouter la note 13.5 dans la classe 2 et créer une liste contenant toutes les notes :
classe2.append(13.5)
classe_totale = classe1 + classe2 + classe3
# 6-ème question : Ajouter une classe 4 à classe_totale, et la trier en ordre croissant :
classe4 = [12, 16, 12.5, 15, 13, 14, 14.5, 8, 5.5, 9, 13]
classe_totale.extend(classe4)
classe_totale.sort()
print()
print("la liste des quatre classes en ordre croissant : ", classe_totale)
# 7-ème question : Déterminer le nombre d’élèves qui ont eu la note 13 :
print()
print("le nombre d'éléves qui ont eu la note 13 est :", classe_totale.count(13))
# 8-ème question : Inverser l’ordre de la liste :
classe_totale.reverse()
print()
print("la liste des quatre classes inversée :", classe_totale)
# 9-ème question : Déterminer le classement de l’élève ayant la note 15.5 :
# on ajoute 1 à l'index car il commence par 0.
print()
print("le classement de l’élève ayant la note 15.5 est :", classe_totale.index(15.5) + 1)

Résultat d’exécution : 

Conclusion :

Finalement, vous venez d’apprendre les bases d’utilisation des listes afin de les attribuer dans vos programmes et vos analyses de données.

Il existe également d’autres types de stockage de données ayant de différentes propriétés, et par conséquent, de différentes utilités.

Il est bien pratique de les maitriser pour savoir lequel à implémenter dans votre programme afin de le rendre plus efficace.

Merci pour votre attention !

Et bonne chance à vous !

Article publié le 03 Octobre 2020par Ismail BOUZIANE