我有这样的嵌套字典:
dic = {
1:
{
'name': 'alice',
'point': 10
},
2:
{
'name': 'john',
'point': 12
}
3:
{
'name': 'mike',
'point': 8
}
4:
{
'name' : 'rose',
'point': 16
}
5:
{
'name': 'ben',
'point': 5
}
}
在我的情况下,我需要根据键'点'的值来对该词典进行降序排序。在第二级..所以结果将是这样的:
{
4:
{
'name' : 'rose',
'point': 16
},
2:
{
'name': 'john',
'point': 12
},
1:
{
'name': 'alice',
'point': 10
},
3:
{
'name': 'mike',
'point': 8
},
5:
{
'name': 'ben',
'point': 5
}
}
有没有办法做到这一点?感谢..
答案 0 :(得分:1)
正如其他人所提到的,在字典表格中你无法对这些项目进行排序。但是,这里有一个解决方案,可以根据您的需要工作,转换为键,值元组,然后按点排序(这是由您的输出隐含但未明确说明)。
d = {
4:
{
'name' : 'rose',
'point': 16
},
2:
{
'name': 'john',
'point': 12
},
1:
{
'name': 'alice',
'point': 10
},
3:
{
'name': 'mike',
'point': 8
},
5:
{
'name': 'ben',
'point': 5
}
}
d_sorted = sorted(d.items(), key = lambda x: x[1]['point'],reverse=True)
print(d_sorted)
答案 1 :(得分:0)
不,你不能排序“那个词典”。字典是无序的。但是,您可以使用嵌套列表或其他人在评论中建议的内容。对于有序的词典,我建议您查看this。