프로그래밍

Python 딕셔너리, 딕셔너리 리스트 타입 정렬(min, max, sorted, operator, lambda)

warpmemory 2017. 1. 3. 14:58
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
>>> data = {"a": 10,"b": 5,"c": 7,"d": 2,"e": 9,"f": 1}
>>> zip(data.values(), data.keys())
[(10, 'a'), (7, 'c'), (5, 'b'), (9, 'e'), (2, 'd'), (1, 'f')]
>>> min(zip(data.values(), data.keys()))
(1, 'f')
>>> max(zip(data.values(), data.keys()))    
(10, 'a')
>>> sorted(zip(data.values(), data.keys()), reverse=True)
[(10, 'a'), (9, 'e'), (7, 'c'), (5, 'b'), (2, 'd'), (1, 'f')]
 
>>> import operator
>>> sorted(data.items(), key=operator.itemgetter(0))
[('a', 10), ('b', 5), ('c', 7), ('d', 2), ('e', 9), ('f', 1)]
>>> sorted(data.items(), key=operator.itemgetter(1)) 
[('f', 1), ('d', 2), ('b', 5), ('c', 7), ('e', 9), ('a', 10)]
 
>>> data = [{"id": 1, "value": 5}, {"id": 2, "value": 1}, {"id": 3, "value": 2}, {"id": 4, "value": 3}, {"id": 5, "value": 4}, {"id": 6, "value": 5}, {"id": 7, "value": 10}]
>>> sorted(data, key = lambda d: (d['id']), reverse=True)                  
[{'id': 7, 'value': 10}, {'id': 6, 'value': 5}, {'id': 5, 'value': 4}, {'id': 4, 'value': 3}, {'id': 3, 'value': 2}, {'id': 2, 'value': 1}, {'id': 1, 'value': 5}]
>>> sorted(data, key = lambda d: (d['value']), reverse=True)  
[{'id': 7, 'value': 10}, {'id': 1, 'value': 5}, {'id': 6, 'value': 5}, {'id': 5, 'value': 4}, {'id': 4, 'value': 3}, {'id': 3, 'value': 2}, {'id': 2, 'value': 1}]
cs