single key Verwenden Sie in, um zu überprüfen, ob der Schlüssel im Wörterbuch vorhanden ist.
Geben Sie entweder dict.keys () oder dict ein (siehe unten).
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
Übrigens ist es auch gut, wenn es einen Wert gibt
In [6]: 1 in D.values()
Out[6]: True
In [7]: 5 in D.values()
Out[7]: False
multiple keys
Verwenden Sie das Dictionary-Ansichtsobjekt, um zu überprüfen, ob mehrere Schlüssel vorhanden sind. Die Methode zum Erfassen des Dictonary-Ansichtsobjekts hat sich zwischen Python2.7 und Python3 geändert. Verwenden Sie viewkeys () für python2.7 und keys () für python3.
python2.7
python2.7
In [8]: D.viewkeys() >= {'abc', 'def'}
Out[8]: True
In [9]: D.viewkeys() >= {'abc', 'xyz'}
Out[9]: False
python3 In Python3 werden Ansichtsschlüssel zu Schlüsseln.
In [3]: D.keys() >= {'abc', 'def'}
Out[3]: True
In [4]: D.keys() >= {'abc', 'xyz'}
Out[4]: False
Verwenden Sie sechs und schreiben Sie wie folgt, damit es auf beiden funktioniert.
In [6]: import six
In [7]: six.viewkeys(D) >= {'abc', 'def'}
Out[7]: True
In [8]: six.viewkeys(D) >= {'abc', 'xyz'}
Out[8]: False
Die Methode, die mir @shiracamus in den Kommentaren gesagt hat. In diesem Fall müssen keine sechs importiert werden, und es ist ordentlich.
In [21]: set(D) >= {'abc', 'def'}
Out[21]: True
In [22]: set(D) >= {'abc', 'xyz'}
Out[22]: False
Die Methode, die mir @shiracamus in den Kommentaren gesagt hat.
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
Im Objekt der Wörterbuchansicht können Sie & verwenden, um Schnittpunkte zu erstellen. 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
Die Methode, die mir @shiracamus in den Kommentaren gesagt hat.
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
Referenz: 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