Exercice Corrigé: Les listes en Python – Partie 2

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 aplatir une liste de liste.

Exemple:

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

# Définir une liste contenant des sous-listes imbriquées
liste = [[3, 4, 2], [1, 7, 6], [8]]

# Utiliser une liste en compréhension pour parcourir les sous-listes "sl"
# et les éléments "i" à l'intérieur de chaque sous-liste.
listePlate = [i for sl in liste for i in sl]

print(listePlate)

Explication:

[i for sl in liste for i in sl]Nous avons utiliser une liste en compréhension pour parcourir les sous-listes « sl » et les éléments « i » à l’intérieur de chaque sous-liste.

 

Exercice 2:

Écrire un programme Python pour joindre une liste à une deuxième liste.

Exemple:

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

# Définir une liste contenant des éléments numériques
liste1 = [1, 2, 3]

# Définir une autre liste contenant des caractères
liste2 = ['a', 'b', 'c']

# Concaténer 'liste1' et 'liste2' pour créer une liste unique 'res'
res = liste1 + liste2

# Afficher 'res', qui contient des éléments de 'liste1' et 'liste2'
print(res)
 

Exercice 3:

Écrire un programme Python pour sélectionner un élément au hasard dans une liste.

Exemple:

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

# Importer le module "random", qui fournit des fonctions
# permettant de générer des valeurs aléatoires.
import random

# Définir une liste contenant des caractères
liste = ['a', 'b', 'c', 'd', 'e', 'f']

# Utilisez la fonction "random.choice" pour sélectionner 
# et afficher un caractère aléatoire à partir de la liste.
print(random.choice(liste))
 

Exercice 4:

Ecrivez un programme Python pour trouver le deuxième plus petit nombre d’une liste.

Exemple:

[0, 1, 2, 3] ➞ 1
[-9, 1, 3, -5] ➞ -5
Solution:

# Définir une liste contenant des nombres
liste = [0, 1, 2, 3]

# Créer un Set vide "dup" pour stocker les éléments dupliqués
# et une liste vide "uniq" pour stocker les éléments uniques.
dup = set()
uniq = []

# Itérer à travers les éléments de la liste
for i in liste:
    # Vérifier si 'i' n'est pas dans 'dup'; 
    # si ce n'est pas le cas, l'ajouter à 'uniq' et 'dup'.
    if i not in dup:
        uniq.append(i)
        dup.add(i)

# Trier la liste "uniq" par ordre croissant
uniq.sort()

# Afficher le deuxième plus petit élément de 
# la liste triée 'uniq', qui se trouve à l'index 1
print(uniq[1])
 

Exercice 5:

Ecrivez un programme Python pour trouver le deuxième plus grand nombre d’une liste.

Exemple:

[0, 1, 2, 3] ➞ 2
[-9, 1, 3, -5] ➞ 1
Solution:

# Définir une liste contenant des nombres
liste = [0, 1, 2, 3]

# Créer un Set vide "dup" pour stocker les éléments dupliqués
# et une liste vide "uniq" pour stocker les éléments uniques.
dup = set()
uniq = []

# Itérer à travers les éléments de la liste
for i in liste:
    # Vérifier si 'i' n'est pas dans 'dup'; 
    # si ce n'est pas le cas, l'ajouter à 'uniq' et 'dup'.
    if i not in dup:
        uniq.append(i)
        dup.add(i)

# Trier la liste "uniq" par ordre croissant
uniq.sort()

# Afficher le deuxième plus grand élément de la liste triée 'uniq',
# qui se trouve à l'index -2 (deuxième à partir de la fin).
print(uniq[-2])
 

Exercice 6:

Écrire un programme Python pour obtenir des valeurs uniques à partir d’une liste.

Exemple de sortie:

Liste originale : [1, 2, 2, 4, 3, 3]                                                             
Liste des nombres uniques : [1, 2, 3, 4] 
Solution:

# Définir une liste contenant plusieurs nombres, y compris les doublons
liste = [1, 2, 2, 4, 3, 3] 

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

# Convertir la "liste" en un Set "my_set" pour éliminer les doublons et garder les éléments uniques.
my_set = set(liste)

# Convertir le Set "my_set" en une liste "uniqu" pour obtenir une liste de nombres uniques.
uniqu = list(my_set)

# Afficher la liste des nombres uniques stockés dans "uniqu".
print("Liste des nombres uniques : ", uniqu)
 

Exercice 7:

Écrire un programme Python pour obtenir la fréquence des éléments d’une liste.

Exemple de sortie:

Liste originale: [10, 10, 10, 30, 30, 20]                                                             
Fréquence des éléments:  Counter({10 : 3, 30 : 2, 20 : 1}) 
Solution:

# Importer le module "collections", qui fournit des types de données spécialisés pour les containers.
import collections

# Définir une liste contenant plusieurs nombres, y compris les doublons
liste = [10, 10, 10, 30, 30, 20]  

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

# Utilisez la fonction 'collections.Counter' pour compter la fréquence de chaque élément de 'liste' et la stocker dans 'f'.
f = collections.Counter(liste)

# Affiche la fréquence des éléments de la liste, telle qu'elle est fournie par l'objet "f".
print("Fréquence des éléments: ", f) 
 

Exercice 8:

Écrire un programme Python pour convertir une liste de nombres entiers en un seul nombre entier.

Exemple:

[1, 2, 3] ➞ 123
[11, 5, 66, 7] ➞ 115667
Solution:

# Définir une liste de nombre
liste = [1, 2, 3]

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

# Utilisez la fonction "join" pour convertir les éléments de "liste" en une seule chaîne de caractères, puis convertissez-la en un nombre entier "x"
x = int("".join(map(str, liste)))

# Afficher l'entier "x"
print(x)
 

Exercice 9:

Écrire un programme Python pour créer plusieurs listes vides (Nombre de liste = 20).

Exemple de sortie:

{'1': [], '8': [], '14': [], '5': [], '17': [], '9': [], '2': [], '7': [], '16': [], '19': [], '4': [], '18': [], '13': [], '3': [], '15': [], '11': [], '20': [], '6': [], '12': [], '10': []}
Solution:

# Créer un dictionnaire vide nommé 'obj'
obj = {}

# Itérer dans la plage de nombres de 1 à 20
for i in range(1, 21):
    # Créer une liste vide en tant que valeur et l'associer à la  
    # représentation sous forme de chaîne du nombre "i" en tant 
    # que clé dans le dictionnaire 'obj'
    obj[str(i)] = []

# Afficher le dictionnaire "obj"
print(obj) 
 

Exercice 10:

Écrire un programme Python pour trouver les valeurs manquantes et supplémentaires dans deux listes.

Exemple:

liste1 = ['a', 'b', 'c', 'd', 'e', 'f']
liste2 = ['d', 'e', 'f', 'g', 'h']

Valeurs manquantes dans la deuxième liste : b,c,a                                                                         
Valeurs supplémentaires dans la deuxième liste : g,h 
Solution:

# Définir deux listes "liste1" et "liste2"
liste1 = ['a', 'b', 'c', 'd', 'e', 'f']
liste2 = ['d', 'e', 'f', 'g', 'h']

# Calculer les valeurs manquantes dans "liste2" en trouvant la différence entre "liste1" et "liste2".
val_manq = set(liste1).difference(liste2)

# Afficher les valeurs manquantes dans "liste2".
print('Valeurs manquantes dans la deuxième liste:', ','.join(val_manq))

# Calculer les valeurs supplémentaires de "liste2" en trouvant la différence entre "liste2" et "liste1".
sup_val = set(liste2).difference(liste1)

# Afficher les valeurs supplémentaires de "liste2".
print('Valeurs supplémentaires dans la deuxième liste:', ','.join(sup_val))
 

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


 

QCM Python

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

  • janvier 13, 2025 à 4:24 pm
    Permalien

    Exercice Corrigé : Les listes en Python – Partie 2 – exercice 2
    Une solution corrigée est proposée, en voici d’autres :

    # Solution 1 - Utilisation de l'opérateur + :
    l1 = [1, 2, 3]
    l2 = ['a', 'b', 'c']
    print("Solution 1")
    print(f"Concatenation de l1 et l2 : {l1 + l2}")

    # Solution 2 – Méthode naïve avec append() :

    l1 = [1, 2, 3]
    l2 = ['a', 'b', 'c']
    print("Solution 2")
    for item in l2:
        l1.append(item)
    print(f"Concatenation de l1 et l2 : {l1}")

    # Solution 3 – Compréhension de liste :

    l1 = [1, 2, 3]
    l2 = ['a', 'b', 'c']
    print("Solution 3")
    result = [item for sublist in [l1, l2] for item in sublist]
    print(f"Concatenation de l1 et l2 : {result}")

    # Solution 4 – Utilisation de extend():

    l1 = [1, 2, 3]
    l2 = ['a', 'b', 'c']
    l1.extend(l2)
    print("Solution 4")
    print(f"Concatenation de l1 et l2 : {l1}")

    # Solution 5 – Utilisation de l’opérateur * :

    l1 = [1, 2, 3]
    l2 = ['a', 'b', 'c']
    print("Solution 5")
    print(f"Concatenation de l1 et l2 : {[*l1, *l2]}")

    # Solution 6 – Utilisation de itertools.chain() :

    l1 = [1, 2, 3]
    l2 = ['a', 'b', 'c']
    print("Solution 6")
    import itertools
    print(f"Concatenation de l1 et l2 : {list(itertools.chain(l1, l2))}")
    Répondre

Laisser un commentaire

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