Bonjour,

je souhaite réaliser la chose suivante à partir du dictionnaire suivant :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
d = {'Thierry': {'Michelle', 'Bernadette'}, 'Michelle': {'Thierry'}, 'Bernadette': set()}
Le but est de créer une fonction avec deux paramètres : le premier le dictionnaire (que ladite fonction devra modifier et le second un booléen qui va indiquer comment la fonctionner doit modifier le dictionnaire d. On doit obtenir le résultat suivant la valeur du booléen

si TRUE
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
d = {'Thierry': {'Michelle', 'Bernadette'}, 'Michelle': {'Thierry'}, 'Bernadette': {'Thierry'}}
si FALSE

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
d = {'Thierry': {'Michelle'}, 'Michelle': {'Thierry'}, 'Bernadette': set()}
je suis parvenu par une méthode pas optimale à mon sens à régler le cas du TRUE mais pour le FALSE je suis bloqué : je n'arrive pas à accéder aux valeurs concernées pour les supprimer :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
def modification_dico(d, englobe="True"):
    relation = [(prenom, amis) for prenom, amis in d.items()]
    for prenom, amis_prenom in relation:
        if englobe:
            for prenoma in amis_prenom:
                d[prenom].add(prenoma)
                d[prenoma].add(prenom)
        else:
           pass
 
 
    return d
Merci d'avance pour vos pistes et/ou vos commentaires. Je ne veux pas du tout prêt mais plutôt être aiguillé dans le "bon sens".

Bonne journée à toutes et à tous.