Ich habe ein Diktat mit Floats als Schlüssel und Objekte als Werte. Ich erhalte einen Float, und ich möchte wissen, zwischen welchen zwei Schlüsseln dieser Float ist. Wie finde ich das?Die beiden nächsten Zahlen zu einem Float aus einer Liste herausfinden
Beispiel dessen, was ich in Code bedeuten:
a = {}
a[1.2] = some_unimportant_instance
a[2.3] = some_other_unimportant_instance
a[2.6] = some_third_unimportant_instance
etc...
r = 2.5
# a[r] will not work
# I want something that returns the two numbers around r
# in this case, 2.3 and 2.6.
Ich würde einen Schritt weiter gehen und sagen, dass ein besseres Modell eine sortierte Liste von Tupeln ist, da Sie jedes Mal (zumindest teilweise) die Liste durchlaufen müssen. –
@ D.Shawley: Ich zweite Sekunde. – user1202136
Wäre nicht 'keys = sortiert (a.keys())' besser? Willst du auch nicht 'index> = 1' anstatt 'index> 1'? Sie könnten auch den doppelten Aufruf von bisect.bisect in der letzten Zeile loswerden. –