按字母顺序从字典中返回值

时间:2014-06-12 18:26:58

标签: python dictionary

我如何从字母中按字母顺序从python中的字典中获取某些值?

例如,如果我们有:

dict = {'A':1, 'B':7, 'C':3}

如何从字典(1),第二高(7)和最低(3)中返回字母表中的最高值?

3 个答案:

答案 0 :(得分:3)

纯Python sortedcontainers moduleSortedDict类型可以帮助您。它按排序顺序自动维护dict键,并且有详细记录和测试。你就像使用dict一样使用它:

>>> from sortedcontainers import SortedDict
>>> d = SortedDict({'A': 1, 'B': 7, 'C': 3})
>>> list(d.keys())
['A', 'B', 'C']

如果您进行大量编辑而不是手动重新排序键,则迭代键会更快。已排序的容器模块非常快,并且具有performance comparison页面,其中包含针对其他实现的基准。

答案 1 :(得分:0)

您可以对键进行排序,然后根据索引

获取值
>>> def get_alphabetically(my_dict, indx):
       key = list(sorted(my_dict))[indx]
       return my_dict[key]
>>> get_alphabetically({'A':1, 'B':7, 'C':3}, 0) # "Highest" value in alphabet
1
>>> get_alphabetically({'A':1, 'B':7, 'C':3}, -1) # "Lowest" value in alphabet
3
>>> get_alphabetically({'A':1, 'B':7, 'C':3}, 1) # "Second highest" value in alphabet
7

话虽如此,您可能会遇到XY问题,而您没有针对您的问题使用适当的数据结构。

答案 2 :(得分:0)

sorted(my_dict.items(),reverse=True,key=lambda x:x[1])

我认为基本上可以做你想要的......