我想按分数对字典进行排序。如果分数相同,则按名称对其进行排序
{
'sudha' : {score : 75}
'Amruta' : {score : 95}
'Ramesh' : {score : 56}
'Shashi' : {score : 78}
'Manoj' : {score : 69}
'Resham' : {score : 95}
}
帮助请谢谢。
我想按分数对字典进行排序。如果分数相同,则按名称对其进行排序
{
'sudha' : {score : 75}
'Amruta' : {score : 95}
'Ramesh' : {score : 56}
'Shashi' : {score : 78}
'Manoj' : {score : 69}
'Resham' : {score : 95}
}
帮助请谢谢。
我认为这应该工作......
sorted(yourdict,key=lambda x:(yourdict[x]['score'],x))
它通过比较元组(分数,名称)来工作。元组比较查看第一项——如果它们相同,则查看第二项,依此类推。所以,(55,'jack') > (54,'lemon) 和 (55,'j') < (55,'k')。
当然,这yourdict
会按所需的顺序返回 的键——因为字典没有顺序的概念,所以实际上无法对字典进行排序。
d = {
'sudha' : {'score' : 75},
'Amruta' : {'score' : 95},
'Ramesh' : {'score' : 56},
'Shashi' : {'score' : 78},
'Manoj' : {'score' : 69},
'Resham' : {'score' : 95},
}
sorted(d, key=lambda x: (d[x]['score'], x))
返回:
['Ramesh', 'Manoj', 'sudha', 'Shashi', 'Amruta', 'Resham']