nehmen Sie den Schlüssel entspricht einem Wert in dictionary
Habe ich dieses Wörterbuch in python
d={1: 'a', 2: 'b', 3: 'c'}
mit d[1] ich bekomme
>>> d[1]
'a'
wie bekomme ich den Schlüssel entspricht einem Wert ?
Beispiel : die mit " a " bekommen Sie 1
Sie wollen zu invertieren Sie die Zuordnung. Diese Frage zu Antworten, dass: stackoverflow.com/questions/483666/...
Ich bin mir nicht sicher, dass er will, invert mapping. Ich denke, dass die Frage über das erste Taste 1 aus einem Wert, und es sind wohl einige Weg, es zu tun schneller
okay, in der Tat bin ich nicht sicher : den Titel haben wir "Tasten" und die Frage, die wir haben "the key"...
Ich bin mir nicht sicher, dass er will, invert mapping. Ich denke, dass die Frage über das erste Taste 1 aus einem Wert, und es sind wohl einige Weg, es zu tun schneller
okay, in der Tat bin ich nicht sicher : den Titel haben wir "Tasten" und die Frage, die wir haben "the key"...
InformationsquelleAutor JuanPablo | 2011-12-27
Du musst angemeldet sein, um einen Kommentar abzugeben.
Möchten Sie zum umkehren der Zuordnung:
Wie gezeigt, in diese Frage
das ist unvermeidlich, wenn es mehrere Elemente mit dem gleichen Wert, dann ist es ganz einfach zweideutig die Taste, um wieder für einen bestimmten Wert ohnehin.
Sie könnten eine Liste erstellen, für jeden Wert...
Dies könnte für das Beispiel gegeben, sondern: ich glaube nicht, dass es ist, was war gefragt, und es nicht alle Fälle abdecken kann.
Der einzige Weg, um das Problem zu umgehen erzogen von @Interrobang wäre zum umkehren der Zuordnung, sondern auch die Werte der neuen dict eine Liste aller passenden Schlüssel aus der alten dict.
InformationsquelleAutor Jonathon Reinhart
In den Fall, Sie suchen immer nur einen Wert, wahrscheinlich gibt es einen schnelleren Weg, das zu tun. Wenn Sie sicher sind, dass der Wert existiert in Ihrem dictionnary, dann :
Wenn Sie nicht sicher sind, immer ein Ergebnis, Sie umgeben können, die durch einen try/except abfangen der
StopIteration
Ausnahme.Hier, dictionnary items generiert werden, bis der Wert übereinstimmt. Wenn Sie ein sehr großes dictionnary, dieser trick kann schneller sein in einigen Fällen.
Mit einem großen Satz von Daten :
Ich im Vergleich die folgenden Funktionen, um zu prüfen, welches war die Schnellste.
Und hier sind die Ergebnisse :
f1
ist schneller, als jeder andere.InformationsquelleAutor FunkySayu
Können Sie ein neues Wörterbuch aus dem Schlüssel und Werte in der Anfangsphase ein:
InformationsquelleAutor srgerg
So finden Sie alle Schlüssel mit dem Wert 'a' und gibt eine Liste von Ihnen.
InformationsquelleAutor Interrobang
Dieser gibt das gewünschte Ergebnis, wenn nur eine entsprechende Taste vorhanden ist. (In O(n) Zeit?) Da es sich beendet, sofort, sobald es findet eine qualifizierte Taste.
gibt alle qualifizierten Schlüssel (in einer Liste). Und es gibt eine leere Liste zurück, wenn es gibt keine solchen Tasten.
Diese Methode wird als " Liste Verständnis'.
Vermeiden, Schlüssel Werte, Wann immer möglich. Es ist ziemlich ineffizient im Vergleich zu den Zugriff auf Werte von Schlüsseln in O(1).
Dies impliziert, dass Sie wollen, erstellen Sie eine Umgekehrt mapping dict wo die Schlüssel und Werte von alten dict geschaltet sind, die als Werte und Schlüssel in der neuen dict-wenn Sie sind gonna verwenden Sie diese Methode, Häufig danach.
InformationsquelleAutor wangsrii