0

给定一个有序和键控的集合(如 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 或其他容器一起使用吗?

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

4

1 回答 1

1

您可以使用以下index方法keys

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')
于 2016-06-27T12:34:56.253 回答