根据python中的值对字典进行排序

时间:2010-07-21 11:18:04

标签: python dictionary sorting key

  

可能重复:
  Sort by key of dictionary inside a dictionary in Python

我有一本字典:

d={'abc.py':{'map':'someMap','distance':11},
   'x.jpg':{'map':'aMap','distance':2},....}

现在我需要的是:我需要根据距离对d进行排序吗?

我尝试了sorted(d.items(),key=itemgetter(1,2),但它无效。

怎么做?

3 个答案:

答案 0 :(得分:4)

你不能(真的)影响dict键出现的顺序。如果要迭代排序的键,可以使用

sorted(d.keys(), key=lambda x: d[x]['distance'])

答案 1 :(得分:3)

无法对字典进行排序。因此,您必须将数据转换为列表并对此列表进行排序。 也许你将你的dict转换为元组列表(键,值)然后排序。

答案 2 :(得分:1)

你可以这样做:

sorted(d.items(), key=lambda x:x[1]['distance'])