如何按值对字典词典列表进行排序

时间:2015-02-15 19:51:13

标签: python list sorting dictionary

我有list dictdict个像这样:

mydic = [{'name':'a', 'loc':{'locname':'z'}, 'id':{'value':'1'}},{'name':'b', 'loc':{'locname':'o'}, 'id':{'value':'2'}}]

如何按locname对其进行排序?我应该得到这个:

mydic_sorted = [{'name':'b', 'loc':{'locname':'o'}, 'id':{'value':'2'}}, {'name':'a', 'loc':{'locname':'z'}, 'id':{'value':'1'}}]

1 个答案:

答案 0 :(得分:4)

您可以使用lambda函数作为函数的<{1}}参数

key

参考: docs

  

>>> mydic = [{'name':'a', 'loc':{'locname':'z'}, 'id':{'value':'1'}},{'name':'b', 'loc':{'locname':'o'}, 'id':{'value':'2'}}] >>> sorted(mydic,key = lambda x:x['loc']['locname']) [{'loc': {'locname': 'o'}, 'name': 'b', 'id': {'value': '2'}}, {'loc': {'locname': 'z'}, 'name': 'a', 'id': {'value': '1'}}]

     

sorted(iterable[, cmp[, key[, reverse]]])指定一个参数的函数,用于从每个列表元素中提取比较键:key。默认值为key=str.lower(直接比较元素)。