J'ai deux dictionnaires Python:
A = {1: 27, 3: 41, 7: 26, 11: 32, 12: 23, 14: 23, 15: 37, 18: 27, 21: 35, 23: 12, 25: 33, 26: 7, 27: 1, 29: 14, 32: 11, 33: 25, 35: 21, 36: 27, 37: 15, 38: 25, 39: 23, 41: 3, 44: 27}
et
B = {1: 27, 3: 41, 7: 26, 11: 32, 12: 23, 15: 37, 18: 27, 21: 35, 26: 7, 29: 14, 32: 11, 33: 25, 35: 21, 36: 27, 39: 23, 41: 3, 44: 27}
Je souhaite supprimer toutes les valeurs numériques présentes dans le dictionnaire B du dictionnaire A. Par cela, je veux dire si un nombre est présent dans le dictionnaire B en tant que clé ou valeur, il doit être totalement supprimé du dictionnaire A de ses clés ou valeurs (même si le nombre est présent plusieurs fois dans l'une des valeurs).
Donc, ma sortie souhaitée devrait être
38
comme le reste de tous les nombres sont présents dans le dictionnaire B et le dictionnaire A, mais 38 est unique dans B (en regardant dans les yeux).
Jusqu'à présent, j'ai essayé ce qui suit:
C = {k: v for k, v in A.items() if k not in B}
Cela me donne:
C = {14: 23, 23: 12, 25: 33, 27: 1, 37: 15, 38: 25}
De toute évidence, ce n'est pas ce que je veux. J'ai aussi essayé:
C = dict(A.items() - B.items())
Cela n'a pas fonctionné non plus.
Toute aide serait extrêmement appréciée.
Vous devez utiliser des ensembles. Les ensembles n'ont pas de doublons. Vous pouvez trouver l'union, l'intersection et la différence de deux ensembles. Le code ci-dessous transforme les clés et les valeurs de chaque dictionnaire en ensembles et crée une union de clés et de valeurs. Ensuite, il trouve la différence entre deux ensembles.
a_set = set(A.keys()).union(set(A.values()))
b_set = set(B.keys()).union(set(B.values()))
print(a_set.difference(b_set))
#output:{38}
Cet article est collecté sur Internet, veuillez indiquer la source lors de la réimpression.
En cas d'infraction, veuillez [email protected] Supprimer.
laisse moi dire quelques mots