Exercice Corrigé: Les listes en Python – Partie 1

Avec des exercices corrigés en Python, vous pratiquerez divers concepts du langage Python. Vous commencerez par des exercices Python de base à des exercices plus avancés. La solution est fournie pour chaque exercice. Vous devez essayer de résoudre chaque problème par vous-même avant de vérifier la solution. Si vous avez des questions concernant chaque problème, nous vous encourageons à les poster sur notre forum.
 
 

Exercice 1:

Écrire un programme Python pour additionner tous les éléments d’une liste donnée [1, 2, 3].

Exemple:

[1, 2, 3] ➞ 6
Solution:

liste = [1, 2, 3]
# Initialiser la variable "s" pour stocker la somme des nombres
s = 0
# Itérer sur chaque élément "i" de la liste 
for i in liste:
    # Additionner l'élément courant "i" à la variable "s"
    s += i
# Afficher la somme finale des nombres
print(s) 

Explication:

Dans le code ci-dessus:

  • s = 0 -> Cette ligne initialise une variable appelée ‘s’ à zéro. Cette variable sera utilisée pour enregistrer le total de la somme des nombres de la liste.
  • for i in liste : -> Cette ligne démarre une boucle qui parcourt chaque élément de la liste, un par un.
  • s += i -> Cette ligne additionne la valeur actuelle de ‘i’ à la variable ‘s’. Ceci est équivalent à la forme plus courte s = s + i.
  • print(s) -> Cette ligne affiche la valeur finale de la variable s à la fin de la boucle.
 

Exercice 2:

Écrire un programme Python pour multiplier tous les éléments d’une liste donnée [1, 2, 2].

Exemple:

[1, 2, 2] ➞ 4
Solution:

liste = [1, 2, 2]
# Initialiser la variable "s" pour stocker la multiplication des nombres
x = 1
# Itérer sur chaque élément "i" de la liste 
for i in liste:
    # Multiplier l'élément courant "i" à la variable "x"
    x *= i
# Afficher la multiplication finale des nombres
print(x) 

Explication:

Dans le code ci-dessus:

  • x = 1 -> Cette ligne initialise une variable appelée ‘x’ à un. Cette variable sera utilisée pour enregistrer le total de la multiplication des nombres de la liste.
  • for i in liste : -> Cette ligne démarre une boucle qui parcourt chaque élément de la liste, un par un.
  • x *= i -> Cette ligne multiplie la valeur actuelle de ‘i’ à la variable ‘x’. Ceci est équivalent à la forme plus courte x = x * i.
  • print(x) -> Cette ligne affiche la valeur finale de la variable x à la fin de la boucle.
 

Exercice 3:

Écrire un programme Python pour obtenir le plus grand nombre d’une liste donnée [3, 9, 2].

Exemple:

[3, 9, 2] ➞ 9
Solution:

liste = [3, 9, 2]

# Initialiser la variable "max" avec le premier élément de la liste comme maximum initial
max = liste[0]
# Itérer à travers chaque élément "i" de la liste.
for i in liste:
    # Vérifier si l'élément actuel "i" est supérieur au maximum actuel "max"
    if i > max:
        # Si "i" est plus grand, actualiser le "max" à "i".
        max = i
# Afficher la valeur maximale finale de la liste
print(max) 

Explication:

Dans le code ci-dessus:

  • max = liste[0] -> Nous supposons que la liste n’est pas vide. Cette ligne initialise une variable appelée max au premier élément de la liste.
  • for i in liste : -> Cette ligne démarre une boucle qui parcourt chaque élément de la liste, un à la fois. La variable de boucle « i » prend la valeur de chaque élément de la liste à chaque itération de la boucle.
  • if i > max : -> Cette ligne compare l’élément courant « i » au maximum actuel « max ». Si ‘i’ est supérieur à ‘max’ donc max = i, ‘max’ est mis à jour pour être égal à ‘i’. Après avoir parcouru toute la liste, ‘max’ contiendra la valeur du plus grand nombre de la liste.
  • print(max) -> Cette ligne affiche la valeur finale de la variable ‘max’ après la fin de la boucle.
 

Exercice 4:

Écrire un programme Python pour obtenir le plus petit nombre d’une liste donnée [3, 9, 2].

Exemple:

[3, 9, 2] ➞ 2
Solution:

liste = [3, 9, 2]

# Initialiser la variable "min" avec le premier élément de la liste comme minimum initial
min = liste[0]
# Itérer à travers chaque élément "i" de la liste.
for i in liste:
    # Vérifier si l'élément actuel "i" est inférieur au minimum actuel "min"
    if i < min:
        # Si "i" est plus petit, actualiser le "min" à "i".
        min = i
# Afficher la valeur minimume finale de la liste
print(min) 

Explication:

Dans le code ci-dessus:

  • min = liste[0] -> Nous supposons que la liste n'est pas vide. Cette ligne initialise une variable appelée min au premier élément de la liste.
  • for i in liste : -> Cette ligne démarre une boucle qui parcourt chaque élément de la liste, un à la fois. La variable de boucle "i" prend la valeur de chaque élément de la liste à chaque itération de la boucle.
  • if i < min : -> Cette ligne compare l'élément courant "i" au minimum actuel "min". Si 'i' est inférieur à 'min' donc min = i, 'min' est mis à jour pour être égal à 'i'. Après avoir parcouru toute la liste, 'min' contiendra la valeur du plus petit nombre de la liste.
  • print(min) -> Cette ligne affiche la valeur finale de la variable 'min' après la fin de la boucle.
 

Exercice 5:

Ecrivez un programme Python pour vérifier si une liste est vide ou non.

Exemple:

[] ➞ Liste vide
[3, 9, 2] ➞ Liste non vide
Solution:

# Créer une liste vide
liste = []

# Vérifier si la liste est vide en utilisant le mot-clé "not"
if not liste:
    # Si la liste est vide, le message s'affiche
    print("Liste vide")
else:
    # Si la liste n'est pas vide
    print("Liste non vide")

Explication:

Le code ci-dessus vérifie si la liste "liste" est vide en utilisant le mot-clé not, qui vérifie si une valeur est False. Si "liste" est vide, la condition est vraie et le bloc de code à l'intérieur de l'instruction if s'exécute.

 

Exercice 6:

Écrire un programme Python pour supprimer les doublons d'une liste.

Exemple:

[1, 2, 1, 2, 3] ➞ [1, 2, 3]
["a", "b", "a", "c", "c"] ➞ ['a', 'b', 'c']
Solution:

# Définir une liste avec des éléments dupliqués
liste = [1, 2, 1, 2, 3]

# Supprimer les doublons en utilisant un dictionnaires
liste = list(dict.fromkeys(liste))

# Affichez la liste
print(liste)

Explication:

Avec dict.fromkeys(liste) nous avons créer un dictionnaire en utilisant les éléments de la liste comme clés. Les éléments dupliqués seront automatiquement supprimés, car les dictionnaires ne peuvent pas avoir de clés dupliquées. Ensuite, il faut reconvertir le dictionnaire en liste: liste = list(dict.fromkeys(liste))

 

Exercice 7:

Écrire un programme Python pour cloner ou copier une liste.

Exemple de sortie:

liste originale: [1, 2, 3]
liste copie: [1, 2, 3]
Solution:

# Créer une liste "original" avec certains éléments
original = [1, 2, 3]

# Créer une nouvelle liste "copy" et y copier les éléments de "original"
copy = list(original)

# Afficher le contenu de la liste "original"
print("liste originale:",original)

# Affiche le contenu de la liste "copy", qui est une copie de la liste "original"
print("liste copie:",copy)

Explication:

copy = list(original) -> Cette ligne crée une nouvelle liste appelée 'copy' qui est une copie de la liste originale. La fonction list() est appelée avec la liste originale comme argument, ce qui crée un nouvel objet list avec les mêmes éléments que la liste originale.

 

Exercice 8:

Écrire un programme Python pour sélectionner les éléments impairs d'une liste.

Exemple:

[1, 2, 3, 4, 5, 6, 7] ➞ [1, 3, 5, 7] 
Solution:

# Définir une liste contenant des nombres compris entre 1 et 7
liste = [1, 2, 3, 4, 5, 6, 7]

# Sélectionner tous les deux éléments de la liste et affichez la liste résultante
print(liste[::2])

Explication:

Ici liste[::2] nous avons utiliser le découpage en tranches pour créer une nouvelle liste contenant tous les deux éléments de 'liste'. La notation 'liste[::2]' commence au début, se termine à la fin et s'incrémente de 2 unités. Elle sélectionne tous les deux éléments de la liste.

 

Exercice 9:

Écrire un programme Python pour concaténer les éléments d'une liste.

Exemple:

['a', 'b', 'c'] ➞ a-b-c 
['a', 'b', 'c'] ➞ abc
Solution:

# Définir une liste
liste = ['a', 'b', 'c']

# Concaténer et affichez la chaîne de caractères résultante
print('-'.join(liste))

# Concaténer et affichez la chaîne de caractères résultante
print(''.join(liste)) 

Explication:

Ici print('-'.join(liste)) nous avons utiliser la méthode 'join' pour concaténer les éléments de la liste 'liste' avec un trait d'union '-' entre les deux éléments.

Ici print(''.join(liste)) nous avons utiliser la méthode 'join' pour concaténer les éléments de la liste 'liste' sans séparateur.

 

Exercice 10:

Ecrivez un programme Python pour afficher les nombres d'une liste spécifiée après en avoir supprimé les nombres pairs.

Exemple:

[1, 2, 3, 4, 5, 6, 7] ➞ [1, 3, 5, 7] 
Solution:

# Créer une liste de nombres.
liste = [1, 2, 3, 4, 5, 6, 7]

# Utiliser une liste en compréhension qui n'inclut que les éléments
# de la liste originale où l'élément n'est pas divisible par 2
liste = [i for i in liste if i % 2 != 0]

# Affichez la liste modifiée, qui ne contient que des valeurs impaires
print(liste)

Explication:

Ici liste = [i for i in liste if i % 2 != 0]

  • Cette opération crée une nouvelle liste appelée 'liste' en itérant sur chaque élément de la liste à l'aide d'une liste en compréhension.
  • Si un élément est impair (c'est-à-dire que son reste après division par 2 n'est pas égal à zéro), il est inclus dans la nouvelle liste.
  • Si un élément est pair (c'est-à-dire que son reste lorsqu'il est divisé par 2 est égal à zéro), il est exclu de la nouvelle liste.

Le résultat final de ce code sera donc une nouvelle liste contenant uniquement les nombres impairs de la liste originale, c'est-à-dire [1, 3, 5, 7].

 

Exercice 11:

Écrire un programme Python pour mélanger et afficher une liste.

Exemple:

['a', 'b', 'c'] ➞ ['b', 'a', 'c']
[1, 2, 3] ➞ [3, 1, 2] 
Solution:

from random import shuffle

# Créer une liste.
liste = ['a', 'b', 'c']

# Utilisez la fonction "shuffle" pour changer aléatoirement l'ordre des éléments de la liste.
shuffle(liste)

# Afficher la liste mélangée
print(liste)

Explication:

Dans le code ci-dessus:

  • from random import shuffle -> Importer la fonction "shuffle" du module "random", qui est utilisée pour mélanger les éléments d'une liste.
  • liste = ['a', 'b', 'c'] -> Une liste nommée 'liste' est définie et initialisée avec six éléments de type String.
  • shuffle(liste) -> Ici, la fonction shuffle() du module random est appelée avec liste comme argument. Cette fonction mélange les éléments de la liste sur place, c'est-à-dire qu'elle modifie directement la liste sans en renvoyer une nouvelle.
  • print(liste) -> Enfin, la fonction print() permet d'afficher la liste des string mélangées.
 

Exercice 12:

Ecrivez un programme Python pour afficher une liste après avoir supprimé le 0ème, le 3ème et le 4ème élément.

Exemple:

['a', 'b', 'c', 'd', 'e', 'f'] ➞ ['b', 'c', 'f']
Solution:

# Créer une liste.
liste = ['a', 'b', 'c', 'd', 'e', 'f']

# créer liste qui exclut les indices spécifiés (0, 3, 4)
liste = [x for (i, x) in enumerate(liste) if i not in (0, 3, 4)]

# Afficher la liste
print(liste)

Explication:

Dans le code ci-dessus:

liste = [x for (i,x) in enumerate(liste) if i not in (0, 3, 4)] -> Crée une nouvelle liste en utilisant une liste en compréhension. La liste en compréhension boucle sur chaque élément (i, x) de liste et n'inclut que les éléments pour lesquels i n'est pas dans (0, 3, 4).

  • enumerate(liste) renvoie une liste de tuples contenant l'indice et la valeur de chaque élément de liste.
  • (i, x) décompose chaque tuple en deux variables, i et x.
  • if i not in (0, 3, 4) vérifie si l'indice de l'élément courant n'est pas égal à 0, 3 ou 4.
  • [x for ...] crée une nouvelle liste contenant uniquement les valeurs des éléments qui remplissent la condition spécifiée dans l'instruction if.

Après l'exécution de ce code, la liste ne contiendra que les éléments dont l'indice est 1, 2 ou 5. Ainsi, les éléments "b", "c" et "f" seront incluses, et les éléments "a", "d" et "e" seront supprimées.

 

Exercice 13:

Écrire une fonction Python qui prend deux listes et renvoie True si elles ont au moins un membre commun.

Exemple:

[1, 2, 3] [3, 4, 5] ➞ True     (Le membre commun est 3)
[1, 2, 3] [4, 5, 6] ➞ False
Solution:

list1 = [1, 2, 3]
list2 = [3, 4, 5]

# Initialiser une variable "res" à False pour indiquer 
# qu'il n'y a pas d'éléments communs au départ.
res = False

# Parcourir chaque élément "i" de "list1".
for i in list1:
    # Parcourir chaque élément "j" de "list2".
    for j in list2:
        # Vérifier si les éléments actuels 'i' et 'j' sont égaux
        if i == j:
            # S'il y a un élément commun, mettre 'res' à True
            res = True
			
# Afficher le résultat
print(res) 

Explication:

Dans la boucle, on parcourt chaque élément de la list1 et de list2 à l'aide de boucles 'for' imbriquées. Si l'élément actuel de la list1 est égal à l'élément actuel de list2, la fonction attribue la valeur True au res et affiche immédiatement le résultat à l'aide de la fonction print().

 

Exercice 14:

Ecrivez un programme Python pour vérifier si chaque nombre est premier dans une liste de nombres donnée. Il retournera True si tous les nombres sont premiers, sinon False.

Exemple:

([0, 3, 4, 7, 9]) -> False
([3, 5, 7, 13]) -> True
([1, 5, 3]) -> False
Solution:

# Définir une fonction qui vérifie si un nombre "n" est premier.
def isPrime(n):
    # Vérifier si 'n' est égal à 1; si c'est le cas, il n'est pas premier
    if (n == 1):
        return False
    # Vérifier si 'n' est égal à 2; si c'est le cas, il est premier
    elif (n == 2):
        return True
    else:
        # Itérer dans les nombres de 2 à 'n' - 1
        for x in range(2, n):
            # Si 'n' est divisible par 'x', il n'est pas premier
            if (n % x == 0):
                return False
        # Si aucun diviseur n'a été trouvé, 'n' est premier
        return True
		
		
# Définir une liste contenant une séquence de nombres
liste = [3, 5, 7, 13]
# vérifie si chaque nombre dans 'liste' est premier, et renvoie True si tous les nombres sont premiers
print(all(isPrime(i) for i in liste))

Explication:

Un nombre premier est un nombre uniquement divisible par 1 ou par lui-même. Par exemple, 17 n'est divisible que par 17 ou par lui-même. Autres nombres premiers 2, 3, 5, 7, 11, 13, 17 ....

Remarque: 0 et 1 ne sont pas des nombres premiers. 2 est le seul nombre premier pair.

 

Exercice 15:

Écrire un programme Python pour accéder à l'index d'une liste.

Exemple:

[9, 8, 4, 1] ➞ 
0 9
1 8
2 4
3 1
Solution:

# Définir une liste contenant une séquence de nombres
liste = [9, 8, 4, 1]

# Utilisez une boucle "for" avec "enumerate" pour parcourir "liste" et obtenir l'index et la valeur de chaque élément.
for i, val in enumerate(liste):
    # Afficher l'index et la valeur de chaque élément de la "liste".
    print(i, val)

Explication:

for i, val in enumerate(liste): - Il s'agit d'une boucle for qui parcourt chaque élément de liste et renvoie à la fois l'index de l'élément et la valeur de l'élément à l'aide de la fonction enumerate.

 

Exercice 16:

Écrire un programme Python pour trouver l'index d'un élément dans une liste spécifiée.

Exemple:

([9, 8, 4, 1] , 8) ➞ 1
([9, 8, 4, 1] , 9) ➞ 0
Solution:

# Définir une liste contenant une séquence de nombres
liste = [9, 8, 4, 1]

# Trouver l'index de l'élément ayant la valeur 8
print(liste.index(8))

Explication:

liste.index(8)Nous avons utiliser la méthode 'index' pour trouver l'index de l'élément ayant la valeur 8 dans la liste. Le résultat sera la position de la première occurrence de 8 dans la liste.

 

Éditeur de code Python: Testez votre code en ligne!


 

QCM Python

Une réflexion sur “Exercice Corrigé: Les listes en Python – Partie 1

  • janvier 12, 2025 à 1:17 pm
    Permalien

    Bonjour,
    Le corrigé de l’exercice 13 ne répond pas à la question posée :
    La question est: comparé 2 listes et si elles ont 1 élément en commun retourné True ou False. La solution proposée retourne True ou False pour chaque couple des deux listes.

    Une Solution possible à la question posée est:

    list_1=[1, 2, 3]
    list_2=[3, 4, 5]
    print(len(list(set(list_1).intersection(set(list_2))))==1)
    Répondre

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *