按值对Python字典进行排序

0 投票
3 回答
947 浏览
提问于 2025-04-16 01:37

可能重复的问题:
在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

字典是不能直接排序的。所以你需要把你的数据转换成一个列表,然后对这个列表进行排序。你可以把字典转换成一个包含元组(键,值)的列表,然后再进行排序。

撰写回答