如何有效地从SortedDict中获得键的索引和值



给定一个排序和键的集合(如OrderedDict或SortedContainers SortedDict),我想做以下操作:

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

然而,我找不到一个有效的方法来同时获得索引和给定键((ix, value) = d.get_index_and_value('second'))的值。

对于SortedDict或其他容器是否可能?

在实践中,我的键是一个可排序的集合(日期),如果这意味着有一个更好的容器,我可以使用

可以使用keysindex方法:

ix, value = d.keys().index('second'), d['second']

这将返回

(1, 'there')

如果您不想重复自己,您可以将其作为一个函数,或者扩展OrderedDict以将其作为一个方法包含:

def get_index_and_value(d, key):
    return d.keys().index(key), d[key]
print(get_index_and_value(d, 'second')

最新更新