1. 对list中元素是dict的
a. 按照dict中每某一个key值进行排序
- lst = [{'high': 19, 'star': 41, 'time': 1},
- {'high': 21, 'star': 40, 'time': 2},
- {'high': 19, 'star': 40, 'time': 3},
- {'high': 22, 'star': 40, 'time': 4},
- {'high': 20, 'star': 40, 'time': 5},
- {'high': 18, 'star': 40, 'time': 1}]
- lst.sort(key=lambda k: (k.get('high')))
- # lst.sort(key=lambda k: (k.get('high'), k.get('star')))
- print(lst)
按照high字段排序,结果输出:
b. 按照dict中多个key值进行排序
lst.sort(key=lambda k: (k.get('high'), k.get('star')))
结果:
2. 对dict进行排序、
a. 按照键进行排序
- lst = {'A': 19, 'B': 41, 'C': 1, 'D': 1, 'E': 40, 'F': 2}
- lst_sort = sorted(lst.items(), key=lambda k: k[0])
结果:
b. 按照值进行排序
lst_sort = sorted(lst.items(), key=lambda k: k[1])
结果:
c. 先按照键,再按照值进行排序
lst_sort = sorted(lst.items(), key=lambda k: (k[1], k[0]))
结果:
2. 对多重dict进行排序
- lst = {'A': {'high': 2, 'low': 3}, 'B': {'high': 1, 'low': 3}, 'C': {'high': 1, 'low': 4}, 'D': {'high': 2, 'low': 5},
- 'E': {'high': 4, 'low': 6}, 'F': {'high': 4, 'low': 10}}
-
-
-
- open_weight_sorted = sorted(lst.items(), key=lambda k: (k[1]['high'], k[1]['low']), reverse=True)
- # lst_sort = sorted(lst.items(), key=lambda k: (k[1], k[0]))
- print(open_weight_sorted)
结果:
[('F', {'high': 4, 'low': 10}), ('E', {'high': 4, 'low': 6}), ('D', {'high': 2, 'low': 5}), ('A', {'high': 2, 'low': 3}), ('C', {'high': 1, 'low': 4}), ('B', {'high': 1, 'low': 3})]
第2种写法:
- open_weight_sorted = sorted(lst,
- key=lambda k: (lst[k]['high'],lst[k]['low']),
- reverse=True)
-
- print(open_weight_sorted)
结果:输出的只是key值