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

Python 如何按值对词典的词典列表进行排序,python,list,sorting,dictionary,Python,List,Sorting,Dictionary,我有一个列表的dicts的dicts如下: 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':

我有一个
列表
dict
s的
dict
s如下:

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'}}]

您可以使用
lambda
函数作为函数的
参数

>>> 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'}}]
Ref:

sorted(iterable[,cmp[,key[,reverse]])

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


4票。说真的?最大的问题是,在提交这样一个问题时,怎么能不注意到列表中的所有重复问题,而这些重复问题的标题基本上与此问题的标题相同。thnx请快速回答:)