python中的字典底层是树实现的,本身没有像列表一样可以排序,但是会有应用场景需要将字典排序

1、一个字典按照值排序
example:
d = {'lilee':25, 'wangyan':21, 'liqun':32, 'age':19}

print(sorted(d.items(), key=lambda item:item[1]))

# response:
# [('age', 19), ('wangyan', 21), ('lilee', 25), ('liqun', 32)]

2、列表嵌套字典,列表里存在多个字典,需要按照某一个键值对排序

response = [
    {'pId': '/opt/data/', 'id': '/opt/data/1.txt', 'name': '1.txt'},
    {'pId': '/opt/data/2020-04', 'id': '/opt/data/2020-04/data-2020-04-01-1.log.gz', 'name': '2020-04/data-2020-04-01-1.log.gz'},
    {'pId': '/opt/data/2020-04', 'id': '/opt/data/2020-04/data-2020-04-02-1.log.gz', 'name': '2020-04/data-2020-04-02-1.log.gz'},
    {'pId': '/opt/data/2020-04', 'id': '/opt/data/2020-04/data-2020-04-04-1.log.gz', 'name': '2020-04/data-2020-04-04-1.log.gz'},
    {'pId': '/opt/data/2020-04', 'id': '/opt/data/2020-04/data-2020-04-03-1.log.gz', 'name': '2020-04/data-2020-04-03-1.log.gz'},
    {'name': '2020-04', 'pId': '/opt/data/2020-04', 'id': '/opt/data/2020-04'},
    {'pId': '/opt/data/', 'id': '/opt/data/data.log', 'name': 'data.log'},
]

response.sort(key=lambda x: x['id'])

print(response)

# [{'pId': '/opt/data/', 'id': '/opt/data/1.txt', 'name': '1.txt'}, {'name': '2020-04', 'pId': '/opt/data/2020-04', 'id': '/opt/data/2020-04'}, {'pId': '/opt/data/2020-04', 'id': '/opt/data/2020-04/data-2020-04-01-1.log.gz', 'name': '2020-04/data-2020-04-01-1.log.gz'}, {'pId': '/opt/data/2020-04', 'id': '/opt/data/2020-04/data-2020-04-02-1.log.gz', 'name': '2020-04/data-2020-04-02-1.log.gz'}, {'pId': '/opt/data/2020-04', 'id': '/opt/data/2020-04/data-2020-04-03-1.log.gz', 'name': '2020-04/data-2020-04-03-1.log.gz'}, {'pId': '/opt/data/2020-04', 'id': '/opt/data/2020-04/data-2020-04-04-1.log.gz', 'name': '2020-04/data-2020-04-04-1.log.gz'}, {'pId': '/opt/data/', 'id': '/opt/data/data.log', 'name': 'data.log'}]
当然这都是正序排列,reverse=True反转参数

 

相关文章:

  • 2021-09-21
  • 2021-05-19
  • 2022-02-15
  • 2021-07-31
  • 2021-08-16
  • 2021-07-12
猜你喜欢
  • 2021-10-26
  • 2021-09-21
  • 2021-09-22
  • 2022-12-23
  • 2022-01-03
  • 2021-07-06
  • 2021-11-28
相关资源
相似解决方案