eine Sammlung gegeben, die bestellt und verkeilt (wie OrderedDict oder SortedContainers SortedDict) ich folgendes tun:Wie bekomme ich den Index und Wert für einen Schlüssel von SortedDict effizient?
d['first'] = 'hi'
d['second'] = 'there'
d['third'] = 'world'
(ix, value) = d.get_index_and_value('second')
assert d.iloc[ix + 1] == 'third'
# or list(d.keys())[ix + 1] with OrderedDict
aber ich kann nicht eine effiziente Art und Weise zu sehen bekommen sowohl den Index und den Wert gegeben einen Schlüssel ((ix, value) = d.get_index_and_value('second')
).
Ist dies mit SortedDict oder einem anderen Container möglich?
In der Praxis sind meine Schlüssel eine sortierbare Sammlung (Daten), wenn das bedeutet, dass es einen besseren Container gibt, den ich verwenden könnte.
Scheint die Antwort ist nein ... Ich grub in den SortedDict-Quellcode und es speichert eine sortierte Liste von Schlüsseln und ein 'dict', also glaube ich nicht, dass es einen effizienten Weg gibt, es mit diesen Daten zu machen. Ich habe versucht, tuplesof '(index, value)' in einem OrderedDict zu speichern, und das funktioniert gut. – danio