-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdict_order.py
More file actions
32 lines (29 loc) · 1.23 KB
/
dict_order.py
File metadata and controls
32 lines (29 loc) · 1.23 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
def dict_order(d,type='key',d_reverse=False):
'''
type:
'key'(defaut)
'value'
'key_len'
'value_len'
'''
assert isinstance(d,dict), 'parameter d must be dict type!'
assert type in ('key','value','key_len','value_len'), 'parameter type must be key/value/key_len/value_len!'
from collections import OrderedDict
if d_reverse:
if 'key'==type:
return OrderedDict(sorted(d.items(), key=lambda t: t[0] ,reverse=True))
elif 'value'==type:
return OrderedDict(sorted(d.items(), key=lambda t: t[1] ,reverse=True))
elif 'key_len'==type:
return OrderedDict(sorted(d.items(), key=lambda t: len(t[0]) ,reverse=True))
elif 'value_len'==type:
return OrderedDict(sorted(d.items(), key=lambda t: len(t[1]) ,reverse=True))
else:
if 'key'==type:
return OrderedDict(sorted(d.items(), key=lambda t: t[0]))
elif 'value'==type:
return OrderedDict(sorted(d.items(), key=lambda t: t[1]))
elif 'key_len'==type:
return OrderedDict(sorted(d.items(), key=lambda t: len(t[0])))
elif 'value_len'==type:
return OrderedDict(sorted(d.items(), key=lambda t: len(t[1])))