Eine Frage über Dictionary

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
schahramsigi
User
Beiträge: 13
Registriert: Sonntag 7. Juni 2020, 20:18

Hallo zusammen
hab eine Frage zu dictionary. Wie kann man über den Wert zu Schlüssel kommen? Ist das überhaupt möglich?
Benutzeravatar
__blackjack__
User
Beiträge: 13199
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@schahramsigi: Du kannst Code schreiben der über alle Schlüssel und Werte iteriert und dabei dann die passenden Schlüssel beispielsweise in einer Liste sammelt. Es kann ja auch mehr als einen Schlüssel geben hinter dem ein gleicher Wert abgelegt ist.

Ansonsten gibt es beispielsweise https://pypi.org/project/bidict/ falls man sich so etwas nicht selber implementieren möchte.
“There will always be things we wish to say in our programs that in all known languages can only be said poorly.” — Alan J. Perlis
schahramsigi
User
Beiträge: 13
Registriert: Sonntag 7. Juni 2020, 20:18

Danke für die schnelle Antwort.
mein Problem ist: ich kann über Schlüssel iterieren und passende Werte finden. Aber andersrum kann ich über Werte iterieren aber wie komme ich zu Schlüsseln.
Das mit bidict ist sehr gut aber ich möchte lernen wie es geht?
Benutzeravatar
__blackjack__
User
Beiträge: 13199
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@schahramsigi: Man iteriert nicht über Schlüssel um den Wert zu finden. Dann bräuchte man kein Wörterbuch, das ginge auch mit Listen die Schlüssel/Wert-Paare enthalten.

Wenn Du einen Wert hast und alle Schlüssel dazu brauchst, dann musst Du über die Schlüssel/Wert-Paare iterieren und jedes mal wenn der Wert dem gesuchten entspricht, dann hast Du einen Schlüssel gefunden. Für die Schlüssel/Wert-Paare haben Wörterbücher eine Methode.

Wenn Du die Funktion von einem `bidict` brauchst, dann nimm das, denn das ist im Gegensatz zum iterieren über alle Schlüssel/Wert-Paare effizient implementiert. Und wenn Du lernen willst wie es geht, dann implementiere Dir halt so etwas wie `bidict` selbst. So schwer ist das auch nicht. Man braucht halt zwei Wörterbücher. Eins für jede Richtung.
“There will always be things we wish to say in our programs that in all known languages can only be said poorly.” — Alan J. Perlis
Neu111
User
Beiträge: 69
Registriert: Dienstag 10. März 2020, 19:02

schahramsigi hat geschrieben: Sonntag 7. Juni 2020, 21:21 Hallo zusammen
hab eine Frage zu dictionary. Wie kann man über den Wert zu Schlüssel kommen? Ist das überhaupt möglich?
Mittels Schleife und "items" lässt sich dein Vorhaben realisieren:

Code: Alles auswählen

for key, value in meinDictonary.items():
    if value=="gesuchterWert":
	    print(key)
schahramsigi
User
Beiträge: 13
Registriert: Sonntag 7. Juni 2020, 20:18

Danke
Hab was dazu gelernt!
Antworten