Python按照字典的键或者值进行键值对的排序

我们在用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')]
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容