Python中列表中嵌套字典如何排序
Posted 但老师
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python中列表中嵌套字典如何排序相关的知识,希望对你有一定的参考价值。
数据
数据样式如下,为列表内嵌套字典
example = [
{'id':1,'name':'b'},
{'id':2,'name':'a'}
]
基本原则虽然已经都明白,还是要啰嗦一句,在计算机语言中,存在着这样的逻辑关系
>>> 2 > 1
True
>>> 'a' < 'b'
True
sorted+lambda
可解君忧
- 使用
key
参数确定排序字段
- 所以传入列表元素,也就是字段的时候,我们返回字典[key],也就是值 - 使用
reverse
参数决定升序降序
- 按照id升序
>>> sorted(example,key=lambda x:x['id'],reverse=False)
[{'id': 1, 'name': 'b'}, {'id': 2, 'name': 'a'}]
- 按照id降序
>>> sorted(example,key=lambda x:x['id'],reverse=True)
[{'id': 2, 'name': 'a'}, {'id': 1, 'name': 'b'}]
- 按照name升序
>>> sorted(example,key=lambda x:x['name'],reverse=False)
[{'id': 2, 'name': 'a'}, {'id': 1, 'name': 'b'}]
- 按照name降序
>>> sorted(example,key=lambda x:x['name'],reverse=True]
[{'id': 1, 'name': 'b'}, {'id': 2, 'name': 'a'}]
Tips
- sorted是不会改变原来的数组的,所以需要赋值到新的变量中
刚才操作一番后,原有的example变量输出后是
>>> example
[{'id': 1, 'name': 'b'}, {'id': 2, 'name': 'a'}]
没有任何变动
- lambda函数对于初学者很容易迷惑,可以这样速记
lambda 传入参数:输出结果
等价于
def 没有名字(传入参数):
return 输出结果
以上是关于Python中列表中嵌套字典如何排序的主要内容,如果未能解决你的问题,请参考以下文章
学不会的python之通过某几个关键字排序分组一个字典列表(列表中嵌套字典)