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参数决定升序降序
  1. 按照id升序
>>> sorted(example,key=lambda x:x['id'],reverse=False)
[{'id': 1, 'name': 'b'}, {'id': 2, 'name': 'a'}]
  1. 按照id降序
>>> sorted(example,key=lambda x:x['id'],reverse=True)
[{'id': 2, 'name': 'a'}, {'id': 1, 'name': 'b'}]
  1. 按照name升序
>>> sorted(example,key=lambda x:x['name'],reverse=False)
[{'id': 2, 'name': 'a'}, {'id': 1, 'name': 'b'}]
  1. 按照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字典嵌套字典排序,该怎么处理?

如何一次对字典或列表中的所有嵌套字典和列表进行排序?

学不会的python之通过某几个关键字排序分组一个字典列表(列表中嵌套字典)

学不会的python之通过某几个关键字排序分组一个字典列表(列表中嵌套字典)

如何在 Linq C# 中使用嵌套字典对列表进行排序?

Python 字典 列表 嵌套 复杂排序大全