python字典中的元素可以排序吗?python字典按照value排序方法

python中,我们了解过可以对列表、字符串的元素进行排序,那对于python字典中的元素可以排序吗?其实对于字典本身我们无法进行排序,但是我们可以对字典按值排序 。本文介绍python中对字典按照value进行排序的三种方法,下面一起来学习一下吧!

【python字典中的元素可以排序吗?python字典按照value排序方法】

python字典中的元素可以排序吗?python字典按照value排序方法

文章插图
方法一:使用key和value进行封装成元组
实例如下:
f = zip(d.keys(), d.values())a = sorted(f)print(a)以上的代码是通过将一个d的key值和value使用zip进行封装成一个元组f,最后再利用sorted函数对它进行排序,然后输出a的值 。
方法二:key使用lambda匿名函数取value值进行排序
实例如下:
dict= {'a':1,'b':2,'c':3}sorted(dict.items(),key = lambda x:x[1],reverse = True)代码中使用value对字典进行排序,它是按照一个value值的大小进行排序的,在一个字典中因为是无序的,所以使用一个列表去对它进行排序将一个字典的key和value保存为一个元组对象 。
方法三:使用operator的itemgertter进行排序
使用这种方法来对字典进行排序,排序的速度比方法二使用匿名函数更快,同时它还支持多个关键字同时排序 。在使用之前,需要导入operator模块 。
例如我们现在有一个字典,里面存储的是学生的姓名、年龄、还有成绩 。
students = [{"name": "xiaoxiao", "age": 22, "score": 92},{"name": "wangwang", "age": 19, "score": 99},{"name": "huang", "age": 23, "score": 82},]代码如下:
from operator import itemgetterstudents_by_score_age = sorted(students, key=itemgetter("score", "age"), reverse=True)print(students_by_score_age)就是通过使用itemgertter进行来对学生的成绩进行排序,从运行结果可以看出来,排序的顺序是降序 。
输出结果:
[{"name": "wangwang", "age": 19, "score": 99},{"name": "xiaoxiao", "age": 22, "score": 92},{"name": "huang", "age": 23, "score": 82},]关于“python字典中的元素可以排序吗?python字典按照value排序方法”就讲解到这里啦,上面给大家介绍了三种关于字典排序的方法,赶紧动手去实践一下吧!

    推荐阅读