我如何从字母中按字母顺序从python中的字典中获取某些值?
例如,如果我们有:
dict = {'A':1, 'B':7, 'C':3}
如何从字典(1),第二高(7)和最低(3)中返回字母表中的最高值?
答案 0 :(得分:3)
纯Python sortedcontainers module有SortedDict类型可以帮助您。它按排序顺序自动维护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])
我认为基本上可以做你想要的......