我们在用python处理一些数据的时会用到字典,有时候会需要进行一个排序的工作,类似于是excel中的带上该行所有元素进行排序,这个时候我们就可以使用这个方法来进行字典的排序,然后将整个文件进行排序,当然,我们如果在linux系统中的话用sort也是可以完成这个工作的。
所有的都可以类似于用键(key)排序的方法1中的代码,在sorted中加上reverse = True来使其反向排序
使用键(key)进行排序
方法1,可以将键按顺序整理出来
In [5]: dict1 = {'d': 2, 'b': 4, 'e': 3, 'a': 5, 'c': 1}
In [6]: sorted(dict1.keys())
Out[6]: ['a', 'b', 'c', 'd', 'e']
In [7]: sorted(dict1.keys(), reverse = True)
Out[7]: ['e', 'd', 'c', 'b', 'a']
方法2,可以将字典按键顺序整理出来
In [10]: dict1 = {'d': 2, 'b': 4, 'e': 3, 'a': 5, 'c': 1}
In [11]: import operator
In [12]: sorted(dict1.items(),key = operator.itemgetter(0))
Out[13]: [('a', 5), ('b', 4), ('c', 1), ('d', 2), ('e', 3)]
使用值(value)进行排序
方法1
In [13]: dict1 = {'d': 2, 'b': 4, 'e': 3, 'a': 5, 'c': 1}
In [14]: for k in sorted(dict1, key = dict1.__getitem__):
...: print(k)
...:
c
d
e
b
a
方法2
In [10]: dict1 = {'d': 2, 'b': 4, 'e': 3, 'a': 5, 'c': 1}
In [11]: import operator
In [12]: sorted(dict1.items(),key = operator.itemgetter(1))
Out[12]: [('c', 1), ('d', 2), ('e', 3), ('b', 4), ('a', 5)]
方法3
In [15]: dict1 = {'d': 2, 'b': 4, 'e': 3, 'a': 5, 'c': 1}
In [16]: f = zip(dict1.values(), dict1.keys())
In [17]: sorted(f)
Out[17]: [(1, 'c'), (2, 'd'), (3, 'e'), (4, 'b'), (5, 'a')]