Y a-t-il une bonne approche pour tester si un dictionnaire contient plusieurs clés?
une version courte de: p> merci. p> modifier : Je ne peux utiliser Python2.4 -.- p> p>
5 Réponses :
if all(test in d for test in ('a','b','c')):
# do something
pourrait utiliser un élément d'élément enveloppé dans un essai / sauf. mais je préfère la solution de Paul McGuire P> P>
in python3, vous pouvez écrire dans python2.7 Vous pouvez écrire p> bien sûr si les clés ne sont pas des caractères simples Vous pouvez remplacer
SET ("ABC") CODE> avec SET (("A ',' B ',' C ')) CODE> P> P> P>
serait doux, mais je ne peux utiliser Python 2.4 que sur notre serveur Prod.
+1 Pour une exhaustivité au cas où une personne plus tard est à la recherche d'ici et utilise Python 2.7+
Vous pouvez utiliser python 3 a introduit une syntaxe littérale définie qui a été Backporté à Python 2.7, donc ces jours-ci, ce qui précède peut être écrit: p> set.issubset (...) code>, comme:
Set (sub_dict) .issubset (parent_dict) semble fonctionner aussi, et c'est plus simple pour moi. Mais merci pour le pointeur :)
in 2.4, j'utilise toujours des opérations définies à de telles fins. Si cela vaut la peine d'avertir (ou d'un autre type de msg ou d'exception) lorsque certaines touches attendues sont manquantes, je fais en particulier:
missing = set(d).difference(('a', 'b', 'c'))
if missing:
logging.warn("Missing keys: %s", ', '.join(sorted(missing)))
else:
...