Exercice Corrigé: Les dictionnaires en Python – Partie 4

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:

Un dictionnaire Python contient List comme valeur. Ecrivez un programme Python pour effacer les valeurs de la liste dans ce dictionnaire.

Exemple:

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

Effacer les valeurs de la liste dans le dictionnaire:
{'A': [], 'B': []}
Solution:

d = {'A': ['el1', 'el2', 'el3'], 'B': ['el1', 'el2']}

print(d)

print("Effacer les valeurs de la liste dans le dictionnaire:")

# Parcourez les clés de la liste « d » et utilisez la méthode « clear » pour vider les listes.
for key in d:
    d[key].clear()

# Afficher le résultat
print(d) 
 

Exercice 2:

Écrire un programme Python pour déterminer la profondeur d’un dictionnaire.

Exemple:

Exemple de dictionnaire: 
{'a': 1, 'b': {'c': {'d': {}}}}

Résultat: 4
Solution:

# Définir une fonction qui calcule la profondeur (niveau d'imbrication maximum) d'un dictionnaire.
def prof_dict(d):
    # Vérifier si l'entrée 'd' est un dictionnaire.
    if isinstance(d, dict):
        # Si 'd' est un dictionnaire, il renvoie 1 plus la profondeur maximale de ses valeurs (récursivement).
        return 1 + (max(map(prof_dict, d.values())) if d else 0)
    # Si 'd' n'est pas un dictionnaire, il renvoie 0 (ce qui indique qu'il n'y a pas d'imbrication).
    return 0


d = {'a': 1, 'b': {'c': {'d': {}}}}
print(prof_dict(d)) 
 

Exercice 3:

Écrire un programme Python pour accéder à l’élément d’une clé de dictionnaire par son index.

Solution:

d = {'Alex': 10, 'Bob': 20, 'Emily': 30}

# Accéder à la première clé du dictionnaire et l'afficher.
print(list(d)[0])

# Accéder à la deuxième clé du dictionnaire et l'afficher.
print(list(d)[1])

# Accéder à la troisième clé du dictionnaire et l'afficher.
print(list(d)[2])

Sortie:

Alex
Bob
Emily
 

Exercice 4:

Écrire un programme Python pour convertir un dictionnaire en une liste de listes.

Exemple:

Dictionnaire original:
{1 : 'rouge', 2 : 'vert', 3 : 'noir'}
Convertir le dictionnaire en une liste de listes:
[[1, 'rouge'], [2, 'vert'], [3, 'noir']].
Solution:

d = {1 : 'rouge', 2 : 'vert', 3 : 'noir'}

print(d)

print("Convertir le dictionnaire en une liste de listes:")

# Utilisez la méthode items pour obtenir des paires clé-valeur, puis convertissez-les en une liste de listes.
result = list(map(list, d.items()))

# Afficher le résultat
print(result) 
 

Exercice 5:

Écrire un programme Python pour filtrer les nombres pairs à partir des valeurs d’un dictionnaire.

Exemple:

Dictionnaire original:
{'A' : [1, 3, 6, 10], 'B' : [1, 4, 8], 'C' : [1, 3, 4]}
Filtrer les nombres pairs à partir de ces valeurs du dictionnaire:
{'A' : [6, 10], 'B' : [4, 8], 'C' : [4]}
Solution:

d = {'A' : [1, 3, 6, 10], 'B' : [1, 4, 8], 'C' : [1, 3, 4]}

print(d)

print("Filtrer les nombres pairs à partir de ces valeurs du dictionnaire:")

# Utilisez un dictionnaire de compréhension pour filtrer les nombres pairs pour chaque valeur du dictionnaire.
result = {key: [i for i in val if not i % 2] for key, val in d.items()} 

# Afficher le résultat
print(result) 
 

Exercice 6:

Écrire un programme Python pour compter la fréquence des valeurs dans un dictionnaire.

Exemple:

Dictionnaire original :
{'A' : 10, 'B' : 10, 'C' : 70, 'D' : 70, 'E' : 70, 'F' : 90}
Compter la fréquence des valeurs dans ce dictionnaire:
Counter({10 : 2, 70: 3, 90: 1})
Solution:

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

d = {'A' : 10, 'B' : 10, 'C' : 70, 'D' : 70, 'E' : 70, 'F' : 90}

print(d)

print("Compter la fréquence des valeurs dans ce dictionnaire:")

# Utilisez la classe 'Counter' pour compter la fréquence des valeurs dans le dictionnaire.
result = Counter(d.values())

# Afficher le résultat
print(result) 
 

Exercice 7:

Écrire un programme Python pour convertir une liste de listes en un dictionnaire.

Exemple:

Liste de listes originale:
[[1, 'Alex', 'A'], [2, 'Bob', 'B'], [3, 'Jean', 'J']]
Convertir cette liste de listes en dictionnaire:
{1: ['Alex', 'A'], 2: ['Bob', 'B'], 3: ['Jean', 'J']}
Solution:

liste = [[1, 'Alex', 'A'], [2, 'Bob', 'B'], [3, 'Jean', 'J']]

print(liste)

print("Convertir cette liste de listes en dictionnaire:")

# Utiliser un dictionnaire pour convertir chaque liste en un dictionnaire, 
# où le premier élément est la clé et les autres éléments sont les valeurs,
result = {item[0]: item[1:] for item in liste}

# Afficher le résultat
print(result) 
 

Exercice 8:

Écrire un programme Python pour permuter les clés et les valeurs d’un dictionnaire.

Exemple:

Exemple de dictionnaire: 
{5: 'Alex', 8: 'Bob', 9: 'Ali'}
Aprés la permutation:
{'Alex': 5, 'Bob': 8, 'Ali': 9}
Solution:

d = {5: 'Alex', 8: 'Bob', 9: 'Ali'}

print(d)

print("Aprés la permutation:")

# Créer un nouveau dictionnaire dans lequel les clés et les valeurs de 'd' sont échangées.
# Les valeurs deviennent des clés, et les clés deviennent des valeurs dans le nouveau dictionnaire.
result = {value: key for key, value in d.items()}

# Afficher le résultat
print(result) 
 

Exercice 9:

Écrire un programme Python pour vérifier si une clé et une valeur spécifiques existent dans un dictionnaire.

Exemple:

Exemple de liste de dictionnaire: 
employees = [
    {'employee_id': 1, 'name': 'Jean Baopli'},
    {'employee_id': 2, 'name': 'Alex Ghol'},
    {'employee_id': 3, 'name': 'Emily Finol'}
]

test('employee_id',1) -> True
test('employee_id',5) -> False
Solution:

def test(dict, key, value):
    # Vérifie si un sous-dictionnaire de la liste dict possède la clé donnée avec la valeur spécifiée.
    if any(sub[key] == value for sub in dict):
        return True  # S'il est trouvé, il renvoie True.
    return False  # S'il n'est pas trouvé, il renvoie False.

	
employees = [
    {'employee_id': 1, 'name': 'Jean Baopli'},
    {'employee_id': 2, 'name': 'Alex Ghol'},
    {'employee_id': 3, 'name': 'Emily Finol'}
]

print(test(employees, 'employee_id', 1))
print(test(employees, 'employee_id', 5))  
 

Exercice 10:

Écrire un programme Python pour combiner deux dictionnaires ou plus, en créant une liste de valeurs pour chaque clé.

Exemple:

Dictionnaires originaux :
{'a':50, 'b':100, 'c':'Vert', 'd':400}
{'b':300, 'c':'Rouge', 'd':600}
Dictionnaires combinés:
{'a':[50], 'b':[100, 300], 'c':['Vert', 'Rouge'], 'd':[400, 600]}
Solution:

# Importez la classe defaultdict du module collections.
from collections import defaultdict

def combine_dict(*dicts):
	# Créer un objet 'defaultdict' 'result' dont la valeur par défaut est une liste vide.
	result = defaultdict(list)

	# Parcourir les dictionnaires
	for el in dicts:
		# Iterate through the keys and values in each dictionary.
		for key in el:
			# Append the value associated with the 'key' to the list for that 'key' in 'result'.
			result[key].append(el[key])

	# Convertit le résultat en un dictionnaire normal et le retourné.
	return dict(result) 
	
d1 = {'a':50, 'b':100, 'c':'Vert', 'd':400}
d2 = {'b':300, 'c':'Rouge', 'd':600}

print("Dictionnaires originaux:")
print(d1)
print(d2)

print("Dictionnaires combinés:")
print(combine_dict(d1, d2))
 

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


 

QCM Python

Laisser un commentaire

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