personnages_restants = {'Bernard': {'genre': 'homme', 'accessoires': ['chapeau']},
'Claire': {'genre': 'femme', 'accessoires': ['chapeau']},
'Eric': {'genre': 'homme', 'accessoires': ['chapeau']},
'George': {'genre': 'homme', 'accessoires': ['chapeau']},
'Maria': {'genre': 'femme', 'accessoires': ['chapeau']}}
def fn_1(personnages_restants, type_caracteristique, valeur_caracteristique):
personnages_copy = personnages_restants.copy()
for name, valeur_caracteristique in personnages_copy.items():
if valeur_caracteristique[type_caracteristique] == valeur_caracteristique:
del personnages_restants[name]
return personnages_restants
print(fn_1(personnages_restants, 'genre', 'femme'))
What appears in the console is the dicitionary personnages_restants
and not the dictionary with the pair of key:value removed.
CodePudding user response:
You used the same name valeur_caracteristique for 2 different objects! Thus your "Qui Est-Ce" algorithm is confused :)
personnages_restants = {'Bernard': {'genre': 'homme', 'accessoires': ['chapeau']},
'Claire': {'genre': 'femme', 'accessoires': ['chapeau']},
'Eric': {'genre': 'homme', 'accessoires': ['chapeau']},
'George': {'genre': 'homme', 'accessoires': ['chapeau']},
'Maria': {'genre': 'femme', 'accessoires': ['chapeau']}}
def fn_1(personnages_restants, type_caracteristique, valeur_caracteristique):
personnages_copy = personnages_restants.copy()
for name, valeur_carac in personnages_copy.items():
if valeur_carac[type_caracteristique] == valeur_caracteristique:
del personnages_restants[name]
return personnages_restants
print(fn_1(personnages_restants, 'genre', 'femme'))
# {'Bernard': {'genre': 'homme', 'accessoires': ['chapeau']},
# 'Eric': {'genre': 'homme', 'accessoires': ['chapeau']},
# 'George': {'genre': 'homme', 'accessoires': ['chapeau']}}