Exercice Corrigé: Les listes en Python – Partie 3

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 diviser une liste en différentes variables.

Exemple:

liste = ['a', 'b', 'c']
...
print(var1)  #a
print(var2)  #b
print(var3)  #c
Solution:

liste = ['a', 'b', 'c']

# Décompressez les éléments de la liste dans des variables séparées 'var1', 'var2' et 'var3'
var1, var2, var3 = liste

print(var1)  #a
print(var2)  #b
print(var3)  #c
 

Exercice 2:

Écrire un programme Python pour générer des groupes de quatre nombres consécutifs dans une liste.

Exemple de sortie:

[[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14, 15, 16]]
Solution:

# Créer une liste imbriquée 'l' à l'aide d'une compréhension de liste
# Cette compréhension de liste génère une matrice 4x4 dont les éléments sont calculés à l'aide de la formule 4*i + j
l = [[4*i + j for j in range(1, 5)] for i in range(4)]

# Afficher la matrice 4x4 résultante 'l'
print(l)
 

Exercice 3:

Écrire un programme Python pour convertir une paire de valeurs en un tableau unique trié.

Exemple:

[(1, 2), (3, 4), (1, 2)] ➞ [1, 2, 3, 4]
Solution:

# Définir une liste contenant des tuples avec des paires de nombres
liste = [(1, 2), (3, 4), (1, 2)]

# Afficher la liste originale
print("Liste originale: ", liste)

# Utiliser un Set pour supprimer les paires de nombres en double 
# et la méthode "union" pour fusionner toutes les paires uniques.
# Trier le Set résultant et afficher les données uniques triées
print("Données uniques triées:", sorted(set().union(*liste)))
 

Exercice 4:

Écrire un programme Python pour insérer un élément avant chaque élément d’une liste.

Exemple de sortie:

Liste originale:  ['Jean', 'Alex', 'Bob']
Liste actualisée:  ['c', 'Jean', 'c', 'Alex', 'c', 'Bob']
Solution:

# Définir une liste
names = ['Jean', 'Alex', 'Bob']

# Afficher la liste originale
print("Liste originale: ", names)

# Utiliser une liste de compréhension pour créer une nouvelle 
# liste 'names' en insérant la lettre 'c' devant chaque élément 
# de la liste originale

# Cela a pour effet de dupliquer le nom de chaque nom en ajoutant 
# la lettre "c" devant celui-ci.
names = [v for elt in names for v in ('c', elt)]

# Afficher la liste actualisée des "names".
print("Liste actualisée: ", names)
 

Exercice 5:

Écrire un programme Python pour afficher des listes imbriquées (chaque liste sur une nouvelle ligne) à l’aide de la fonction print().

Exemple:

[['Alex'], ['Jean'], ['Bob']] ➞
['Alex']
['Jean']
['Bob']
Solution:

# Définir une liste "names" contenant des sous-listes, chacune avec un seul nom
names = [['Alex'], ['Jean'], ['Bob']]

# Utiliser une liste de compréhension pour créer une nouvelle liste, 
# où chaque sous-liste est convertie en chaîne de caractères.
# La liste résultante contient des représentations sous forme de
# chaînes de caractères des sous-listes.
# La méthode "join" est utilisée pour concaténer les chaînes avec 
# les caractères de nouvelle ligne "\n" entre elles.
# Cela crée une chaîne de plusieurs lignes où chaque sous-liste 
# se trouve sur une nouvelle ligne.
# Afficher la chaîne de caractères sur plusieurs lignes
print('\n'.join([str(lst) for lst in names])) 
 

Exercice 6:

Écrire un programme Python pour calculer la différence entre deux listes.

Exemple:

["orange", "green", "white"], ["black", "yellow", "green"] ➞
Color1 - Color2: ['white', 'orange']
Color2 - Color1: ['black', 'yellow']
Solution:

# Importer la classe "Counter" du module "collections"
from collections import Counter

# Définir deux listes 'color1' et 'color2' contenant des noms de couleurs
color1 = ["orange", "green", "white"]
color2 = ["black", "yellow", "green"]

# Créer des objets Counter 'counter1' et 'counter2' pour chaque liste afin 
# de compter les occurrences des noms de couleurs.
counter1 = Counter(color1)
counter2 = Counter(color2)

# Afficher les éléments qui sont dans 'counter1' mais pas 
# dans 'counter2' (Color1 - Color2)
print("Color1 - Color2: ", list(counter1 - counter2))

# Afficher les éléments qui se trouvent dans 'counter2' mais 
# pas dans 'counter1' (Color2 - Color1)
print("Color2 - Color1: ", list(counter2 - counter1))
 

Exercice 7:

Écrire un programme Python pour créer une liste avec une infinité d’éléments.

Exemple de sortie:

0                                                                                                             
1                                                                                                             
2                                                                                                             
3                                                                                                             
4
...
Solution:

# Importer le module 'itertools' pour travailler avec les itérateurs et les générateurs
import itertools

# Créer un itérateur 'c' en utilisant la fonction 'count' de 'itertools'
# La fonction 'count' génère une séquence infinie de nombres à partir de 0
c = itertools.count()

# Utilisez la fonction "next" pour récupérer la valeur suivante de l'itérateur "c" et l'afficher
print(next(c))

# Récupérer et afficher la valeur suivante de l'itérateur "c"
print(next(c))
print(next(c))
print(next(c))
print(next(c))
#... 
 

Exercice 8:

Écrire un programme Python pour remplacer le dernier élément d’une liste par une autre liste.

Exemple de sortie:

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

# Définir deux listes contenant des nombres entiers
liste1 = [1, 2, 3, 10]
liste2 = [4, 5, 6]

# Mettre à jour le dernier élément de 'liste1' (en utilisant le découpage) 
# pour qu'il soit la liste entière de 'liste2'
# Ceci remplace effectivement le dernier élément de 'liste1' par 
# les éléments de 'liste2'
liste1[-1:] = liste2

# Affichez la liste "liste1" modifiée, qui contient désormais les 
# éléments de "liste1" et de "liste2".
print(liste1)
 

Exercice 9:

Écrire un programme Python pour afficher le dernier élément de la liste.

Exemple de sortie:

[1, 2, 3, 4] ➞ 4
Solution:

# Define a list containing integers
liste = [1, 2, 3, 4]

# Calculer la longueur de la liste à l'aide de la fonction "len" et 
# soustraire 1 pour obtenir la position du dernier élément.
res = len(liste) - 1

# Afficher le dernier élément de la liste en utilisant son index, 
# qui est "res".
print(liste[res])
 

Exercice 10:

Ecrivez un programme Python pour trouver un tuple, la plus petite valeur de deuxième index d’une liste de tuples.

Exemple de sortie:

[(3, 2), (5, 1), (8, 0)] ➞ (8, 0)
Solution:

# Définir une liste contenant des tuples, où chaque tuple a deux éléments
liste = [(3, 2), (5, 1), (8, 0)]

print(min(liste, key=lambda n: (n[1], -n[0])))

Explication:

Ici min(liste, key=lambda n: (n[1], -n[0])) nous avons utilisé la fonction ‘min’ pour trouver l’élément minimum de la liste sur la base d’une clé personnalisée. L’argument « key » spécifie une fonction lambda qui calcule une clé pour chaque élément de « liste ». La fonction lambda calcule la clé sous la forme d’un tuple, dont le premier élément est le deuxième élément du tuple (n[1]), et le deuxième élément est la négation du premier élément (-n[0]). Cela permet de trier les tuples d’abord par leur deuxième élément dans l’ordre croissant, puis par leur premier élément dans l’ordre décroissant. La fonction « min » renvoie le n-uplet dont la valeur de clé est la plus petite.

 

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


 

QCM Python

2 réflexions sur “Exercice Corrigé: Les listes en Python – Partie 3

  • janvier 17, 2025 à 5:54 pm
    Permalien

    Autre possibilité pour l’exercice 9, partie 3:

    liste=[1, 2, 3, 4]
    print(liste[-1])
    Répondre
  • janvier 17, 2025 à 6:16 pm
    Permalien

    Une autre solution possible :

    liste_of_tuples = [(3, 2), (5, 1), (8, 0)]
    print(liste_of_tuples.sort(key=lambda t: t[1], reverse=True)[-1])
    print(liste_of_tuples[-1])
    Répondre

Laisser un commentaire

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