Suchen eines Schlüssels anhand eines Werts in einem Python-Wörterbuch
Innerhalb eines Wörterbuchs kann das Suchen eines Schlüssels anhand seines entsprechenden Werts häufig vorkommen Aufgabe. Es stehen zwar alternative Methoden zur Verfügung, wie die Verwendung der Funktion dict.get() oder das Durchlaufen der Wörterbuchelemente, ein einfacher und effizienter Ansatz ist jedoch die Verwendung eines Listenverständnisses.
Implementieren der Schlüsselsuche
Um den gewünschten Schlüssel zu finden, können Sie das folgende Listenverständnis verwenden:
key = [key for key, value in dict_obj.items() if value == 'value'][0]
Dieses Verständnis durchläuft alle Schlüssel-Wert-Paare im Wörterbuch und filtert basierend auf dem bereitgestellten Wert und gibt eine Liste übereinstimmender Schlüssel zurück. Der Index [0] wird dann verwendet, um den ersten Schlüssel aus der Liste abzurufen.
Alternativer Ansatz: Generatorausdruck
Anstelle eines Listenverständnisses kann ein Generatorausdruck verwendet werden bieten eine effizientere Möglichkeit, mit großen Wörterbüchern umzugehen. Ein Generatorausdruck gibt ein Generatorobjekt zurück, das nacheinander Werte liefert. Es ist speichereffizienter und vermeidet die Erstellung von Zwischenlisten.
Der folgende Generatorausdruck erzielt das gleiche Ergebnis:
key = next(key for key, value in dd.items() if value == 'value')
wobei dd das Zielwörterbuch ist. Dieser Ausdruck durchläuft die Wörterbuchelemente und liefert den ersten passenden Schlüssel. Wenn keine Übereinstimmung gefunden wird, wird StopIteration ausgelöst. Das Abfangen dieser Ausnahme kann bei der Behandlung von Fällen hilfreich sein, in denen der Wert nicht im Wörterbuch vorhanden ist.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3