按值对Python字典进行排序
可能重复的问题:
在Python中按字典内字典的键排序
我有一个字典:
d={'abc.py':{'map':'someMap','distance':11},
'x.jpg':{'map':'aMap','distance':2},....}
现在我想要的是:我想根据它们的距离来排序 d
?
我试过 sorted(d.items(),key=itemgetter(1,2)
,但是没有成功。
这该怎么做呢?
3 个回答
1
你可以这样做:
sorted(d.items(), key=lambda x:x[1]['distance'])
4
你无法(真的)控制字典中键出现的顺序。如果你想要按照排序的顺序来遍历这些键,可以使用下面的方式:
sorted(d.keys(), key=lambda x: d[x]['distance'])
3
字典是不能直接排序的。所以你需要把你的数据转换成一个列表,然后对这个列表进行排序。你可以把字典转换成一个包含元组(键,值)的列表,然后再进行排序。