Wie kann ich überprüfen, ob ein Schlüssel in einem Wörterbuch vorhanden ist? [duplicate]

Lesezeit: 3 Minuten

Benutzer-Avatar
Aneurysma

Nehmen wir an, ich habe ein assoziatives Array wie folgt: {'key1': 22, 'key2': 42}.

Wie kann ich überprüfen, ob key1 existiert im Wörterbuch?

  • In Python 3 können Sie einfach verwenden 'key1' in {'key1': 22, 'key2': 42}.keys() beziehen sich auf die keys() Methode ein Wörterbuch

    – Essen Sie bei Joes

    10. Februar 2020 um 20:13 Uhr

Benutzer-Avatar
Rafal Rawicki

if key in array:
  # do something

Assoziative Arrays werden in Python Wörterbücher genannt und Sie können mehr über sie erfahren in die stdtypes-Dokumentation.

  • Und stellen Sie sicher, dass Sie den Schlüsselnamen in Anführungszeichen setzen, wenn es sich um eine Zeichenfolge handelt.

    – JAL

    2. Oktober 2010 um 11:04 Uhr

  • @astroanu if key not in array

    – Spencer Wood

    6. August 2015 um 14:38 Uhr

  • Woher kommt das Wort “Array” in dieser Antwort?

    – Ray Salemi

    29. März 2017 um 17:19 Uhr

  • Wie akzeptierte Antworten gehen, ist diese schrecklich. Es beantwortet die Frage in keiner Weise und ist nichts weiter als ein herablassender Link zur Dokumentation. Schade, dass Google das so hoch bewertet.

    – cstrutton

    12. Juli 2017 um 0:59 Uhr

  • @cstrutton Bitte schlagen Sie Verbesserungen vor. Zum Zeitpunkt des Schreibens dieser Antwort hatte ich nicht das Gefühl, dass weitere Details erforderlich sind.

    – Rafal Rawicki

    12. Juli 2017 um 11:13 Uhr

Wenn Sie den Wert des Schlüssels abrufen möchten, falls vorhanden, können Sie auch verwenden

try:
    value = a[key]
except KeyError:
    # Key is not present
    pass

Wenn Sie einen Standardwert abrufen möchten, wenn der Schlüssel nicht vorhanden ist, verwenden Sie
value = a.get(key, default_value). Wenn Sie gleichzeitig den Standardwert festlegen möchten, falls der Schlüssel nicht vorhanden ist, verwenden Sie
value = a.setdefault(key, default_value).

  • Es ist zu beachten, dass Sie nur die verwenden sollten try/except Fall, wenn Sie davon ausgehen, dass der Schlüssel fast 100 % der Zeit vorhanden sein wird. Andernfalls, if in ist schöner und effizienter. +1 für die Erwähnung der anderen Möglichkeiten.

    – Aaronasterling

    2. Oktober 2010 um 13:37 Uhr

  • Interessant, ich erinnere mich, dass ich irgendwo in den offiziellen Dokumenten gelesen habe, dass es besser ist, um Vergebung als um Erlaubnis zu bitten …

    – Yannic Hamann

    15. Januar 2020 um 6:36 Uhr

  • Aus Sicht der Leistung ist try/expect besser, wenn Sie es mit dict mit vielen Schlüsseln zu tun haben

    – Avo Asatryan

    3. März 2020 um 7:52 Uhr

Benutzer-Avatar
Geisterhund74

Eine andere Methode ist has_key() (falls noch Python 2.X verwendet wird):

>>> a={"1":"one","2":"two"}
>>> a.has_key("1")
True

  • has_key ist veraltet, wurde in Python 3 entfernt und ist in Python 2 halb so schnell

    – Aaronasterling

    2. Oktober 2010 um 11:10 Uhr

  • Ja, es ist in 2.x veraltet und ja, es ist halb so schnell in Python 2.x.

    – Aaronasterling

    2. Oktober 2010 um 11:44 Uhr

  • veraltet gilt für allen neuen Code. Sobald es veraltet ist, verwenden Sie es nicht mehr.

    – Aaronasterling

    2. Oktober 2010 um 12:40 Uhr

  • das Formular ‘Diktat eingeben’ gibt es seit 2.2

    – Tim W.

    2. Oktober 2010 um 13:01 Uhr

  • Wir könnten weiter und weiter darüber reden, Tatsache bleibt, es ist immer noch eine alternative Option für <=2.5.

    – Geisterhund74

    2. Oktober 2010 um 14:15 Uhr

1098700cookie-checkWie kann ich überprüfen, ob ein Schlüssel in einem Wörterbuch vorhanden ist? [duplicate]

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy