Une seule ligne de code pour rechercher une clé dans un dictionnaire interne imbriqué 2D
Est-il une seule ligne de la méthode pour vérifier si un Python 2d dict a un centre de clé/valeur?
Maintenant je ne quelque chose comme ceci:
if d.has_key(k1):
if d[k1].has_key(k2):
# do something
Est-il une meilleure façon de le faire?
Grâce
source d'informationauteur Fraz
Vous devez vous connecter pour publier un commentaire.
Le fragment ci-dessus est agréable, si vous ne se soucient pas de savoir si k1 existe réellement ou pas et veulent simplement savoir si k2 existe à l'intérieur d'elle, si elle n'existe pas. Comme vous pouvez le voir sur mon extrait de code, je préfère le
in
de l'opérateur, mais vous pourriez tout aussi bien diresi vous préférez que l'idiome, mais le
has_key
méthode a été déprécié en Python 3.x, de sorte que vous devriez éviter.Vous pouvez utiliser
in
:La
has_key
méthode est obsolète et est retiré en Python 3.x.Connexes:
Je n'ai pas assez de réputation pour le commentaire, mais s'il vous plaît noter que le sommet de la suggestion échouera si la valeur de key1 n'en est pas.
échoue si
d = {'k1': None}
donc être sûr de la valeur de vos clés.La réponse à votre première question est oui. Je considère Eli réponse
le meilleur de la chemise qu'il évite de regarder jusqu'k1 en d deux fois. La réponse à votre deuxième question dépend de ce que vous voulez faire si le test échoue et si vous voulez faire quelque chose de différent dans les deux cas. Si oui:
Ne pas utiliser
has_key()
utilisationget()
commehas_key()
a été déprécié en python 3.x :