我们在用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')]

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐