Sie so etwas tun könnte:
i={'foo':'bar', 'baz':'huh?'}
keys=i.keys() #in python 3, you'll need `list(i.keys())`
values=i.values()
print keys[values.index("bar")] #'foo'
aber Sie jederzeit Ihre ändern Wörterbuch, müssen Sie Ihre Schlüssel, Werte aktualisieren, weil Wörterbücher nicht bestellt werden. Jedes Mal, wenn Sie ein neues Schlüssel/Wert-Paar einfügen, geht die Reihenfolge, die Sie dachten, verloren und wird durch eine neue (mehr oder weniger zufällige) Reihenfolge ersetzt. Daher ist es nicht sinnvoll, nach dem Index in einem Wörterbuch zu fragen.
Beachten Sie auch, dass das, was Sie fragen, wahrscheinlich nicht das ist, was Sie wirklich wollen. Es gibt keine Garantie, dass das inverse Mapping in einem Dictionary eindeutig ist. Mit anderen Worten: Sie folgenden Wörterbuch haben könnten:
d={'i':1, 'j':1}
In diesem Fall ist es unmöglich zu wissen, ob Sie i
oder j
wollen und in der Tat wird hier keine Antwort in die Lage, Ihnen zu sagen, welche ('i'
oder 'j'
) wird ausgewählt (weil Wörterbücher nicht geordnet sind). Was willst du in dieser Situation tun? Sie könnten eine Liste mit akzeptablen Schlüsseln erhalten ... aber ich vermute, dass Ihr grundlegendes Verständnis von Wörterbüchern nicht ganz richtig ist.
Sie wollen den Wert * zur Karte * zurück zum Schlüssel. In einem Python-Diktat gibt es keinen Index. –
Siehe http://stackoverflow.com/questions/3221475/reverse-mapping-of-dictionary-with-python und http://stackoverflow.com/questions/483666/python-reverse-inverse-a-mapping –