可能重复:
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)
,但它无效。
怎么做?
答案 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'])