Exercice Corrigé: Les dictionnaires 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 compter le nombre d’éléments des valeurs de dictionnaire qui est une liste.

Exemple:

Exemple de dictionnaire: 
{'A': ['el1', 'el2', 'el3'], 'B': ['el1', 'el2']}

Résultat: 5
Solution:

# Créez un dictionnaire
d =  {'A': ['el1', 'el2', 'el3'], 'B': ['el1', 'el2']}

# Calculer le nombre total d'éléments en additionnant les tailles des listes (valeurs) du dictionnaire.
res = sum(map(len, d.values()))

# Afficher le nombre total d'éléments.
print(res) 
 

Exercice 2:

Écrire un programme Python pour trier Counter par valeur.

Exemple:

Exemple de dictionnaire: 
{'Alex': 1, 'Bob': 3, 'Emily': 7}

Résultat: [('Emily', 7), ('Bob', 3), ('Alex', 1)]
Solution:

# Importez la classe 'Counter' du module 'collections'.
from collections import Counter

# Créez un objet Counter 'c'
c = Counter({'Alex': 1, 'Bob': 3, 'Emily': 7})

# Afficher les éléments les plus courants du compteur 'c'
print(c.most_common())
 

Exercice 3:

Écrire un programme Python pour faire correspondre les valeurs des clés dans deux dictionnaires.

Exemple:

Exemple de dictionnaire: 
x = {'A': 1, 'B': 3, 'C': 2}
y = {'A': 1, 'B': 2}

Résultat: 
A: 1 est présent à la fois dans x et y
Solution:

# Créez deux dictionnaires 'x' et 'y' avec des paires clé-valeur.
x = {'A': 1, 'B': 3, 'C': 2}
y = {'A': 1, 'B': 2}
	
# Utiliser les opérations du Set pour trouver les paires clé-valeur communes entre 'x' et 'y'.
# Itérer à travers les paires clé-valeur communes à l'aide d'une boucle for.
for (key, value) in set(x.items()) & set(y.items()):
    # Afficher un message indiquant que la clé et la valeur sont présentes à la fois dans 'x' et 'y'.
    print('%s: %s est présent à la fois dans x et y' % (key, value))
 

Exercice 4:

Écrire un programme Python pour supprimer les éléments vides d’un dictionnaire donné.

Exemple:

Dictionnaire original:
{'c1' : 'Rouge', 'c2' : 'Vert', 'c3' : None}
Nouveau dictionnaire après suppression des éléments vides:
{'c1' : 'Rouge', 'c2' : 'Vert'}
Solution:

d = {'c1': 'Red', 'c2': 'Green', 'c3': None}

print("Original Dictionary:", d)

print("Nouveau dictionnaire après suppression des éléments vides:")

# Utiliser un dictionnaire de compréhension pour créer un nouveau dictionnaire qui exclut les éléments avec des valeurs 'None'.
# Itère à travers les paires clé-valeur dans 'd' et les inclut dans le nouveau dictionnaire si la valeur n'est pas 'None'.
d = {key: value for (key, value) in d.items() if value is not None}

# Affiche le nouveau dictionnaire qui ne contient que des éléments non vides.
print(d) 
 

Exercice 5:

Écrire un programme Python pour filtrer un dictionnaire en fonction des valeurs.

Exemple:

Dictionnaire original:
{'c1' : 3, 'c2' : 6, 'c3' : 7}
Valeurs supérieures à 5:
{'c2' : 6, 'c3' : 7}
Solution:

d = {'c1' : 3, 'c2' : 6, 'c3' : 7}

print("Original Dictionary:", d)

print("Valeurs supérieures à 5:")

# Utiliser un dictionnaire de compréhension pour créer un nouveau dictionnaire contenant uniquement les paires clé-valeur dont les valeurs sont supérieures ou égales à 5.
# Interroger les paires clé-valeur dans 'd' et les inclure dans le nouveau dictionnaire si la valeur est supérieure ou égale à 5.
result = {key: value for (key, value) in d.items() if value >= 5}

# Afficher le nouveau dictionnaire contenant uniquement les paires clé-valeur filtrées.
print(result) 
 

Exercice 6:

Écrire un programme Python pour vérifier que toutes les valeurs d’un dictionnaire sont identiques.

Exemple:

Dictionnaire original:
{'c1' : 3, 'c2' : 3, 'c3' : 3}
Vérifier les 3 dans le dictionnaire:
True
Solution:

d = {'c1' : 3, 'c2' : 3, 'c3' : 3}
n = 3

print("Original Dictionary:", d)

print("Vérifier les 3 dans le dictionnaire:")

# Utilisez la fonction all pour vérifier si toutes les valeurs du dictionnaire 'd' sont égales à 'n'.
result = all(x == n for x in d.values())

# Afficher le résultat
print(result) 
 

Exercice 7:

Écrire un programme Python pour créer un dictionnaire regroupant une séquence de paires clé-valeur dans un dictionnaire de listes.

Exemple:

[('A', 1), ('B', 2), ('A', 3), ('B', 4), ('C', 1)]
Regroupement dans un dictionnaire de listes:
{'A' : [1, 3], 'B' : [2, 4], 'C' : [1]}
Solution:

liste = [('A', 1), ('B', 2), ('A', 3), ('B', 4), ('C', 1)]

print(liste)

print("Regroupement dans un dictionnaire de listes:")

# Créez un dictionnaire vide 'result' pour stocker les données groupées.
result = {}
for k, v in liste:
    # Utilisez setdefault pour ajouter les valeurs 'v' à la liste associée à la clé 'k'.
    result.setdefault(k, []).append(v)

# Afficher le résultat
print(result) 
 

Exercice 8:

Écrire un programme Python pour diviser un dictionnaire de listes donné en listes de dictionnaires.

Exemple:

{'A': [1, 2, 3], 'B': [10, 20, 30]}
Diviser ce dictionnaire de listes en une liste de dictionnaires:
[{'A': 1, 'B': 10}, {'A': 2, 'B': 20}, {'A': 3, 'B': 30}]
Solution:

d = {'A': [1, 2, 3], 'B': [10, 20, 30]}

print(d)

print("Diviser ce dictionnaire de listes en une liste de dictionnaires:")

# Récupérer les clés du dictionnaire 'd'.
keys = d.keys()
    	
# Utilisez la fonction zip pour transposer les listes de valeurs en tuples.
vals = zip(*[d[k] for k in keys])
    
# Créer une liste de dictionnaires en zippant les clés et les tuples transposés.
result = [dict(zip(keys, v)) for v in vals]

# Afficher le résultat
print(result) 
 

Exercice 9:

Écrire un programme Python pour supprimer un dictionnaire spécifié d’une liste donnée.

Exemple:

Liste originale du dictionnaire :
[{'id':1, 'name':'Alex'}, {'id':2, 'name':'Bob'}, {'id':3, 'name':'Ali'}]
Supprimer l'identifiant 2 de cette liste de dictionnaires:
[{'id': 1, 'name': 'Alex'}, {'id': 3, 'name': 'Ali'}]
Solution:

liste = [{'id':1, 'name':'Alex'}, {'id':2, 'name':'Bob'}, {'id':3, 'name':'Ali'}]
s_id = 2

print(liste)

print("Supprimer l'identifiant 2 de cette liste de dictionnaires:")

# Utiliser une liste de compréhension pour filtrer les dictionnaires dont l'id n'est pas égal à s_id.
# Le résultat filtré est réaffecté à la liste, supprimant ainsi le dictionnaire avec l'identifiant spécifié.
liste[:] = [d for d in liste if d.get('id') != s_id]

# Afficher le résultat
print(liste) 
 

Exercice 10:

Écrire un programme Python pour convertir les valeurs string d’un dictionnaire donné en types de données entiers.

Exemple:

[{'a' : '10', 'b' : '20'}, {'x' : '30', 'y' : '40'}]
Convertir les valeurs de type string en entiers:
[{'a': 10, 'b': 20}, {'x': 30, 'y': 40}]
Solution:

liste = [{'a' : '10', 'b' : '20'}, {'x' : '30', 'y' : '40'}]

print(liste)

print("Convertir les valeurs de type string en entiers:")

# Utiliser une liste de compréhension pour parcourir chaque dictionnaire 'b' dans la liste.
# Pour chaque dictionnaire, convertissez les valeurs des chaînes en entiers et créez un nouveau dictionnaire.
result = [dict([a, int(x)] for a, x in b.items()) for b in liste]

# Afficher le résultat
print(result) 
 

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


 

QCM Python

Une réflexion sur “Exercice Corrigé: Les dictionnaires en Python – Partie 3

  • février 12, 2025 à 3:11 pm
    Permalien

    Exercice Corrigé: Les dictionnaires en Python – Partie 3 – exercice6
    Autre solution possible:

    dict = {'c1' : 3, 'c2' : 3, 'c3' : 3}
    print(len({value for value in dict.values()})==1)
    Répondre

Laisser un commentaire

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