/ / Comparaison d’un ensemble de dictionnaires en python - python, dictionnaire, set

Comparaison d'un ensemble de dictionnaires en python - python, dictionnaire, set

Je suis intéressé à comparer deux ensembles dedictionnaires.Je sais que pour faire cela, le dictionnaire doit être rendu hashable probablement en utilisant un frozenset, mais alors qu'est-ce qu'une "manière élégante de faire des comparaisons de clés de dictionnaire hashable?

actual_set = [{
"Cgroups": "rwm",
"PathInContainer": "/dev/xnull",
"PathOnHost": "/dev/null"
}]

d = {
"Cgroups": "rwm",
"PathInContainer": "/dev/xnull",
"PathOnHost": "/dev/null"
}
hashed_devices = frozenset(expected_devices.items())

for key in hashed_devices:
# assert actual_Set == set(hashed_Devices)

Ici, comment puis-je comparer l'ensemble actuel avec les périphériques hachés?

Réponses:

1 pour la réponse № 1

Si vous voulez juste savoir si deux dictionnaires sont identiques ou non, ils vous ont donné la meilleure réponse: dict1 == dict2.

Si vous voulez trouver la différence entre deux dictionnaires, vous pouvez essayer l’opération symmetric_difference () du jeu. Par exemple,

dict1 = {"a":1, "b":2, "c":3}
dict2 = {"b":2, "c":3, "d":4}

set1 = set(dict1.items())
set2 = set(dict2.items())

set1.symmetric_difference(set2) vous montrera un nouvel ensemble avec des paires (clé, valeur) qui sont soit dans dict1 ou dict2 mais pas les deux, voici set([("a", 1), ("d", 4)]).

À propos, vous pouvez facilement utiliser dict () pour le convertir en dictionnaire incluant la différence entre dict1 et dict2.