single key Utilisez in pour vérifier si la clé existe dans le dictionnaire.
La clé dans dict.keys () ou la clé dans dict peut être utilisée comme indiqué ci-dessous.
In [2]: D = {'abc': 1, 'def': 2, 'ghi': 3, 'jkl' : 4}
In [3]: 'abc' in D.keys()
Out[3]: True
In [4]: 'xyz' in D.keys()
Out[4]: False
In [5]: 'abc' in D
Out[5]: True
Au fait, il est bon de l'utiliser également s'il y a une valeur
In [6]: 1 in D.values()
Out[6]: True
In [7]: 5 in D.values()
Out[7]: False
multiple keys
Utilisez l'objet de vue Dictionnaire pour vérifier s'il existe plusieurs clés. La méthode d'acquisition de l'objet de vue Dictonary a changé entre python2.7 et python3. Utilisez viewkeys () pour python2.7 et keys () pour python3.
python2.7
python2.7
In [8]: D.viewkeys() >= {'abc', 'def'}
Out[8]: True
In [9]: D.viewkeys() >= {'abc', 'xyz'}
Out[9]: False
python3 En python3, les viewkeys deviennent des clés.
In [3]: D.keys() >= {'abc', 'def'}
Out[3]: True
In [4]: D.keys() >= {'abc', 'xyz'}
Out[4]: False
Pour que cela fonctionne sur les deux, utilisez six et écrivez comme suit.
In [6]: import six
In [7]: six.viewkeys(D) >= {'abc', 'def'}
Out[7]: True
In [8]: six.viewkeys(D) >= {'abc', 'xyz'}
Out[8]: False
La méthode que @shiracamus m'a indiquée dans les commentaires. Dans ce cas, il n'est pas nécessaire d'en importer six et c'est chouette.
In [21]: set(D) >= {'abc', 'def'}
Out[21]: True
In [22]: set(D) >= {'abc', 'xyz'}
Out[22]: False
La méthode que @shiracamus m'a indiquée dans les commentaires.
In [2]: all(key in D for key in ('abc', 'def'))
Out[2]: True
In [3]: all(key in D for key in ('abc', 'xyz'))
Out[3]: False
Dans l'objet de vue dictionnaire, vous pouvez utiliser & pour prendre une intersection. https://docs.python.org/2/library/stdtypes.html#dictionary-view-objects
python2.7
In [14]: len(D.viewkeys() & {'abc', 'xyz'}) > 0
Out[14]: True
In [15]: len(D.viewkeys() & {'x', 'xyz'}) > 0
Out[15]: False
python3
In [10]: len(D.keys() & {'abc','xyz'}) > 0
Out[10]: True
In [11]: len(D.keys() & {'x','xyz'}) > 0
Out[11]: False
La méthode que @shiracamus m'a indiquée dans les commentaires.
In [25]: any(key in D for key in ('abc', 'xyz'))
Out[25]: True
In [26]: any(key in D for key in ('abc', 'def'))
Out[26]: True
In [27]: any(key in D for key in ('x', 'xyz'))
Out[27]: False
référence: https://stackoverflow.com/questions/16004593/python-what-is-best-way-to-check-multiple-keys-exists-in-a-dictionary https://docs.python.org/2/library/stdtypes.html#dictionary-view-objects
Recommended Posts