我有这样的字典:
Averages = {'Jennifer': [1],'Chris': [5],'Malcolm': [9]}
我想更改和排序该词典(而不是新词典):
Averages = {'Malcolm': 9, 'Chris': 5, 'Jennifer': 1}
我该怎么做?
答案 0 :(得分:1)
将两个答案合并在一起,你应该使用OrderedDict
import operator
from collections import OrderedDict
Averages = {'Jennifer': [1],'Chris': [5],'Malcolm': [9]}
Averages ={k:v[0] for k,v in Averages.items()}
Averages = OrderedDict(sorted(Averages.items(), key=operator.itemgetter(1), reverse=True))
答案 1 :(得分:0)
您可以使用dictionary comprehension
>>> Averages2 ={k:v[0] for k,v in Averages.items()}
>>> Averages2
{'Chris': 5, 'Malcolm': 9, 'Jennifer': 1}
答案 2 :(得分:0)
python中的字典被声明为无序,它们没有顺序。因此,你无法推动他们保存订单。你可以尝试从任何有序的对象创建一个dict,它将失去它的顺序,所以只是忘记它。如果您想要订购,请使用不同的类型,例如列表或ordered dict。
@JoeК回答你,如何让你的词典成为整数,而不是列表。如果您想获得订购商品的清单,请尝试以下方法:>>>import operator
>>> A = sorted(Averages.items(), key=operator.itemgetter(1))
>>> A
[('Jenifer', 1), ('Chris', 5), ('Malcolm', 9)]
如果您认为这是您需要的订单 - 那么很好。如果您仍然坚持要在字典中订购这些项目 - 请尝试:
>>> dict(A)
{'Chris': 5, 'Malcolm': 9, 'Jenifer': 1}
这是不可能的。