Chapitre 2 : Les listes dans Python.

Introduction:

Les listes en Python sont des structures de données essentielles qui permettent de stocker des collections d'éléments dans un ordre spécifique.

Elles sont modifiables, ce qui signifie qu'il est possible d'ajouter, de retirer ou de modifier des éléments après la création de la liste. Cette flexibilité les rend idéales pour stocker des données qui nécessitent des mises à jour fréquentes ou des manipulations diverses.

De plus, les listes peuvent contenir des éléments de différents types, ce qui les rend extrêmement utiles pour une variété de tâches en programmation.

1. Introduction aux listes

En Python, une liste permet de regrouper plusieurs valeurs dans une seule variable.

On écrit une liste entre crochets [ ], en séparant les éléments par des virgules.

Exemple : notes = [15, 12, 18]

Chaque élément possède un indice (sa position dans la liste). Le premier élément a l’indice 0.

Exemple : notes[0] vaut 15.

2. Exercice :

A faire dans le cahier.

On considère la liste liste1 = [22, 14, 5, 8 , 0, 34, 56].

  1. Quel est l'indice du nombre 14 ?
  2. Combien la liste a-t-elle d'éléments ?
  3. Quel est l'indice du nombre 56 ?

3. Manipulation des listes :

A copier dans le cahier.

Les manipulations basiques :

4. Exercice :

Écrire les instructions Python permettant de créer :

  • une liste course qui contient les chaînes "banane", "Crème fraiche", "Moutarde" (dans cet ordre) ;
  • une liste notes qui contient les nombres 10, 5, 8, 7 (dans cet ordre).
# À compléter

Tests :

# Tests

Affichage :

Console:



    
>>>

5. Exercice :

Écrire une instruction Python qui stocke dans la variable longueur le nombre d’éléments contenus dans la liste nombres suivante :

nombres = [ 12, 45, 78, 3, 9, 11, 56, 87, 99, 102, 5, 18, 23, 67, 44, 72, 81, 36, 14, 29, 7, 64, 53, 90, 38, 21, 49, 85, 32, 16, 101, 150, 75, 66, 27, 200, 142, 31, 47, 8, 300, 415, 522, 639, 741, 852, 963, 111, 222, 333, 444, 555, 666, 777, 888, 999, 135, 246, 357, 468, 579, 680, 791, 802, 913, 1024, 2048, 4096, 8192, 9999, 1234, 2345, 3456, 4567, 5678, 6789, 7890, 8901, 9012, 1123, 2211, 3322, 4433, 5544, 6655, 7766, 8877, 9988, 10001, 11011, 12021, 13031, 14041, 15051, 16061, 17071, 18081, 19091, 20002, 21012 ] longueur = ..

Tests :

# Tests

Affichage :

Console:



    
>>>

6. Exercice :

Compléter le code suivant afin d’ajouter les éléments manquants à la liste fruits :

fruits = ["pomme"] # ajouter "banane" # ajouter "orange" # ajouter "kiwi"

Tests :

# Tests

Affichage :

Console:



    
>>>

7. Exercice :

Compléter le code suivant afin de retirer les bons éléments de la liste animaux :

animaux = ["chat", "chien", "lapin", "tortue", "poisson"] # supprimer "chien" # supprimer "tortue"

Tests :

# Tests

Affichage :

Console:



    
>>>

8. Les indices négatifs :

En python, liste[-1] désigne le dernier élément de la liste, liste[-2] l'avant dernier etc.

9. Exercice :

On souhaite apprendre à utiliser la méthode pop(-1) en Python, qui permet de supprimer et de retourner le dernier élément d’une liste.

Compléter le code suivant afin de retirer le dernier élément de la liste mots :

mots = [ "arbre", "maison", "voiture", "fleur", "chat", "chien", "lapin", "pluie", "soleil", "lune", "école", "stylo", "cahier", "ordinateur", "clavier", "souris", "écran", "fenêtre", "porte", "chaise", "table", "livre", "bouteille", "verre", "eau", "feu", "air", "terre", "montagne", "rivière", "forêt", "plage", "mer", "océan", "île", "village", "ville", "route", "train", "avion", "pomme", "banane", "poire", "raisin", "cerise", "fraise", "melon", "pastèque", "orange", "citron", "éléphant", "tigre", "lion", "zèbre", "girafe", "singe", "panda", "ours", "renard", "loup", "sapin", "rosier", "tulipe", "orchidée", "marguerite", "bleuet", "pissenlit", "lavande", "chêne", "érable", "guitare", "piano", "violon", "tambour", "flûte", "trompette", "harpe", "batterie", "saxophone", "clarinette", "rouge", "bleu", "vert", "jaune", "noir", "blanc", "rose", "violet", "gris", "marron" ] # supprimer le dernier élément avec pop(-1)

Tests :

# Tests

Affichage :

Console:



    
>>>

10. Exercice :

Compléter la fonction ci-dessous pour qu’elle renvoie "Trouvé" si le langage recherché est présent dans la liste langages, sinon "Absent". Utiliser if ... in ....

langages = [ "java", "c", "python", "ruby", "go", "c++", "c#", "javascript", "typescript", "kotlin", "swift", "rust", "php", "perl", "scala", "haskell", "elixir", "dart", "lua", "r", "matlab", "fortran", "cobol", "pascal" ] def est_present(langages, cible): # retourner "Trouvé" si cible est dans langages, sinon "Absent" if ... in ...: return "Trouvé" else: return "Absent"

Tests :

# Tests

Affichage :

Console:


    
>>>

11. Exercice :

On organise une soirée et l’entrée est réservée aux invités inscrits sur une liste. Écrire une fonction est_invite(nom) qui prend en paramètre un prénom et qui renvoie "Bienvenue" si la personne fait partie de la liste, sinon "Désolé, vous n’êtes pas sur la liste".

invites = [ "Alice", "Bob", "Charlie", "Diane", "Eve", "François", "Gabriel", "Hélène", "Isabelle", "Jacques", "Karim", "Laura", "Marc", "Nadia", "Olivier", "Paul", "Quentin", "Rania", "Sophie", "Thomas", "Ursule", "Valérie", "William", "Xavier", "Yasmine", "Zacharie", "Amélie", "Benoît", "Clara", "David", "Élodie", "Fabrice", "Gérard", "Hugo", "Inès", "Jules", "Katia", "Léo" ] def est_invite(nom): # compléter avec if ... in ... ...

Tests :

# Tests

Affichage :

Console:


    
>>>

12. Exercice :

Créer une fonction plus_de_5_elements qui prend une liste de nombres en paramètre et qui renvoie True si la liste contient 5 éléments ou plus, et False sinon.

Exemples :

>>> plus_de_5_elements([7,8,9])
False
>>> plus_de_5_elements([1,2,3,4,5,6,7,8,9])
True
def plus_de_5_elements(liste): # compléter avec len ...

Tests :

# Tests

Affichage :

Console:


    
>>>

13. Les tranches (slices) dans les listes

En Python, on peut extraire une partie d’une liste grâce à l’opérateur : (deux-points). Cette opération s’appelle une tranche (slice).

Exemple de liste :

notes = [8, 12, 15, 9, 14, 17, 10, 13]

Quelques exemples d’utilisation :

On peut aussi ajouter un pas :

notes[::2]   # un élément sur deux

Résumé : la syntaxe liste[début:fin:pas] permet d’obtenir une partie de la liste sans la modifier. Si une borne est absente, Python la remplace par le début ou la fin de la liste.

14. Exercice : Extraire une partie d'une liste

Compléter le code pour obtenir une liste sous_liste contenant les trois éléments du milieu de la liste notes.

notes = [8, 12, 15, 9, 14, 17, 10, 13]
# On veut extraire [15, 9, 14]
notes = [8, 12, 15, 9, 14, 17, 10, 13] sous_liste = notes[...] # à compléter print(sous_liste)

Tests :

# Tests

Affichage :

Console:



    
>>>

15. Exercice : Du début à une position

Compléter le code pour obtenir une sous-liste debut contenant les 4 premiers éléments de la liste notes.

notes = [8, 12, 15, 9, 14, 17, 10, 13] debut = notes[...] # à compléter print(debut)

Tests :

# Tests

Affichage :

Console:



    
>>>

16. Exercice : De la position 3 jusqu’à la fin

Compléter le code pour obtenir une sous-liste fin contenant tous les éléments à partir de l’indice 3.

notes = [8, 12, 15, 9, 14, 17, 10, 13] fin = notes[...] # à compléter print(fin)

Tests :

# Tests

Affichage :

Console:



    
>>>

17. Exercice : Un élément sur deux

Compléter le code pour créer une nouvelle liste un_sur_deux contenant un élément sur deux de la liste notes.

notes = [8, 12, 15, 9, 14, 17, 10, 13] un_sur_deux = notes[...] # à compléter print(un_sur_deux)

Tests :

# Tests

Affichage :

Console:



    
>>>

18. Exercice : Inverser une liste

Utiliser la syntaxe des tranches pour créer une version inversée de la liste notes.

notes = [8, 12, 15, 9, 14, 17, 10, 13] inverse = notes[...] # à compléter print(inverse)

Tests :

# Tests

Affichage :

Console:



    
>>>

19. Exercice : Les meilleures notes

Problème : Un professeur enregistre les notes de ses élèves dans une liste Python triée par ordre croissant. Il souhaite connaître la moyenne des meilleures notes, c’est-à-dire des trois dernières valeurs de la liste.

Compléter la fonction moyenne_meilleures_notes(notes) qui prend en paramètre une liste d’entiers (les notes triées) et renvoie la moyenne des trois plus grandes notes.

⚠️ Indice : utilisez une tranche pour extraire la partie de la liste qui vous intéresse.

Exemples :

moyenne_meilleures_notes([1,1,1,1,1,1,1,1,1,1,1,2,2,2,12,13,14]) → 13.0
moyenne_meilleures_notes([5, 7, 9]) → 7.0
moyenne_meilleures_notes([2, 4, 6, 8, 10]) → 8.0
def moyenne_meilleures_notes(notes): """ Renvoie la moyenne des trois meilleures notes. On suppose que la liste est triée par ordre croissant. """ # à compléter meilleures = notes[...] # extraire les trois dernières notes somme = meilleures[...] + meilleures[...] + meilleures[...] moyenne = ... / ... return moyenne

Tests :

# Vérifie que la fonction utilise les slices et calcule bien la moyenne des trois dernières valeurs

Affichage :

Console:


    
>>>