La variable names
contient un dictionnaire avec plusieurs personnes qui possèdent le même nom de famille.
Nous souhaiterions regrouper tous les gens avec le même nom de famille dans le dictionnaire resultat
:
{
'Smith': ['Patrick', 'Clara', 'Michel'],
'Mercier': ['Julie', 'Rose'],
'Moulin': ['Maxime', 'Gérard', 'John']
}
names = { "Patrick": "Smith", "Julie": "Mercier", "Maxime": "Moulin", "Gérard": "Moulin", "Rose": "Mercier", "Clara": "Smith", "John": "Moulin", "Michel": "Smith", } resultat = {} for prenom, nom in names.items(): if nom not in resultat: resultat[nom] = [] resultat[nom].append(prenom) print (resultat)
marc78

names = { "Patrick": "Smith", "Julie": "Mercier", "Maxime": "Moulin", "Gérard": "Moulin", "Rose": "Mercier", "Clara": "Smith", "John": "Moulin", "Michel": "Smith", } resultat = {} for key in names: if not names[key] in resultat: resultat[names[key]] = [] resultat[names[key]].append(key) print (resultat)
JerJol

names = { "Patrick": "Smith", "Julie": "Mercier", "Maxime": "Moulin", "Gérard": "Moulin", "Rose": "Mercier", "Clara": "Smith", "John": "Moulin", "Michel": "Smith", } resultat = {} for key, value in names.items(): resultat.setdefault(value, []).append(key)
Jean penan goumou

names = { "Patrick": "Smith", "Julie": "Mercier", "Maxime": "Moulin", "Gérard": "Moulin", "Rose": "Mercier", "Clara": "Smith", "John": "Moulin", "Michel": "Smith", } resultat = {} for k, v in names.items(): if v not in resultat.keys(): resultat[v] = [k] else: resultat[v].append(k)
zeno

names = { "Patrick": "Smith", "Julie": "Mercier", "Maxime": "Moulin", "Gérard": "Moulin", "Rose": "Mercier", "Clara": "Smith", "John": "Moulin", "Michel": "Smith", } smith_dict = {name[0]:name[1] for name in names.items() if "Smith" in name} print(smith_dict)
Laura

from collections import defaultdict names = { "Patrick": "Smith", "Julie": "Mercier", "Maxime": "Moulin", "Gérard": "Moulin", "Rose": "Mercier", "Clara": "Smith", "John": "Moulin", "Michel": "Smith", } resultat = defaultdict(list) for key, value in names.items(): resultat[value].append(key)
names = { "Patrick": "Smith", "Julie": "Mercier", "Maxime": "Moulin", "Gérard": "Moulin", "Rose": "Mercier", "Clara": "Smith", "John": "Moulin", "Michel": "Smith", } resultat = {} for k, v in names.items(): if not resultat.get(v): resultat[v] = [] resultat[v].append(k)
Romu80

names = { "Patrick": "Smith", "Julie": "Mercier", "Maxime": "Moulin", "Gérard": "Moulin", "Rose": "Mercier", "Clara": "Smith", "John": "Moulin", "Michel": "Smith", } resultat = {} for prenom in names : key = names[prenom] resultat.setdefault(key, []) resultat[key].append(prenom) print(resultat)
fernando

names = { "Patrick": "Smith", "Julie": "Mercier", "Maxime": "Moulin", "Gérard": "Moulin", "Rose": "Mercier", "Clara": "Smith", "John": "Moulin", "Michel": "Smith", } resultat = {} for cle, valeur in names.items(): if valeur in resultat: resultat[valeur].append(cle) else: resultat[valeur] = [cle]
names = { "Patrick": "Smith", "Julie": "Mercier", "Maxime": "Moulin", "Gérard": "Moulin", "Rose": "Mercier", "Clara": "Smith", "John": "Moulin", "Michel": "Smith", } smith_liste = [] moulin_liste = [] mercier_liste = [] for cle in names: if names[cle] == "Smith": smith_liste.append(cle) elif names[cle] == "Mercier": mercier_liste.append(cle) else: moulin_liste.append(cle) resultat = { "Smith" : smith_liste, "Mercier" : mercier_liste, "Moulin" : moulin_liste }
sam069

from collections import defaultdict names = { "Patrick": "Smith", "Julie": "Mercier", "Maxime": "Moulin", "Gérard": "Moulin", "Rose": "Mercier", "Clara": "Smith", "John": "Moulin", "Michel": "Smith", } # https://docs.python.org/fr/3/library/collections.html#collections.defaultdict resultat = defaultdict(list) for first_name, second_name in names.items(): resultat[second_name].append(first_name)
Lionel

names = { "Patrick": "Smith", "Julie": "Mercier", "Maxime": "Moulin", "Gérard": "Moulin", "Rose": "Mercier", "Clara": "Smith", "John": "Moulin", "Michel": "Smith", } existing_names = [] for key, value in names.items() : if value not in existing_names : existing_names.append(value) resultat = {} for name in existing_names : firstnames = [] for key, value in names.items() : if value == name : firstnames.append(key) resultat[name] = firstnames
names = { "Patrick": "Smith", "Julie": "Mercier", "Maxime": "Moulin", "Gérard": "Moulin", "Rose": "Mercier", "Clara": "Smith", "John": "Moulin", "Michel": "Smith", } family_name = list(dict.fromkeys(names.values())) resultat = {family_name[n]: [firstname for firstname in names if names[firstname] == family_name[n]] for n in range(0, 3, 1)}
P4radigmShift

names = { "Patrick": "Smith", "Julie": "Mercier", "Maxime": "Moulin", "Gérard": "Moulin", "Rose": "Mercier", "Clara": "Smith", "John": "Moulin", "Michel": "Smith", }
Un instant...
Le dictionnaire resultat contient les prénoms regroupés par nom de famille
La variable resultat
ne contient pas les bonnes valeurs.
Bravo, tu as réussi cet exercice de code 🥳

Soumettre ma solution
Vous avez trouvé une solution alternative pour cet exercice ? Proposez votre solution à la communauté 👇
Seules les propositions différentes de la solution proposée par Docstring peuvent être envoyées.
Ma solution :
Mes notes
Sauvegardé