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

2024-04-24 15:54:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个listdicts的dicts如下:

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

如何按locname排序?我应该得到这个:

^{pr2}$

Tags: nameid排序valueloclistdictspr2
1条回答
网友
1楼 · 发布于 2024-04-24 15:54:47

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

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

参考:docs

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

key specifies a function of one argument that is used to extract a comparison key from each list element: key=str.lower. The default value is None (compare the elements directly).

相关问题 更多 >