按分数对词典排序。如果分数相同,则按名称排序
import operator
dt={
'sudha' : {'score' : 75} ,
'Amruta' : {'score' : 95} ,
'Ramesh' : {'score' : 56} ,
'Shashi' : {'score' : 78} ,
'Manoj' : {'score' : 69} ,
'Resham' : {'score' : 95}
}
sorted_x1 = sorted(dt.items(), key=operator.itemgetter(1))
print sorted_x1
输出为:
[('Ramesh', {'score': 56}), ('Manoj', {'score': 69}),
('sudha', {'score': 75}),
('Shashi', {'score': 78}), ('Resham', {'score': 95}), ('Amruta',{'score': 95})]
现在我想按名称对最后两个元素排序,因为它们的分数是相同的。你知道吗
您可以将要排序的元素作为元组或列表发送,排序将首先在第一个元素上进行,如果第一个元素相同,则排序将移动到下一个元素。你知道吗
示例-
小心,您的代码实际上是比较dicts本身,而不是分数。ie公司
如果字典里有多余的键,可能会引起意外。您可以安排
key
函数返回score
和key
的tuple
。你知道吗如果有人需要在Python3中这样做,您将不得不避免在
lambda
中解包元组,因为这不再是允许的。你知道吗这是一种方法:
打印
sorted_dt_scores
时输出:相关问题 更多 >
编程相关推荐