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反轉參數