欢迎访问宙启技术站
智能推送

Python函数:如何按照指定排序规则对字典进行排序?

发布时间:2023-06-04 05:45:11

在Python中,我们可以使用内置函数sorted()来对列表、元组和字典等对象进行排序。排序的规则可以通过key参数指定,key参数传递一个函数用于定制排序规则。在本篇文章中,我们将介绍如何按照指定排序规则对字典进行排序。

1. 按字典值升序排序

假设我们有一个字典,其中包含了学生的姓名和成绩信息:

score_dict = {'张三': 80, '李四': 90, '王五': 75, '赵六': 85}

现在我们想要按照成绩升序排序,可以使用如下代码实现:

sorted_dict = sorted(score_dict.items(), key=lambda x: x[1])
print(sorted_dict)

输出结果为:

[('王五', 75), ('张三', 80), ('赵六', 85), ('李四', 90)]

在这里,我们使用了sorted()函数对字典的items()方法返回的键-值对列表进行排序。key参数的值为一个lambda函数,该函数返回第二个元素(成绩)用于排序。

2. 按字典值降序排序

如果我们想要按照成绩降序排序,只需要将lambda函数改为返回元组的第二个元素的相反数即可:

sorted_dict = sorted(score_dict.items(), key=lambda x: -x[1])
print(sorted_dict)

输出结果为:

[('李四', 90), ('赵六', 85), ('张三', 80), ('王五', 75)]

3. 按字典键升序排序

除了按值排序,我们还可以按字典键进行排序。例如,我们有一个人名与年龄的字典:

age_dict = {'张三': 20, '李四': 18, '王五': 22, '赵六': 19}

现在我们想要按照人名升序排序,可以使用如下代码:

sorted_dict = sorted(age_dict.items(), key=lambda x: x[0])
print(sorted_dict)

输出结果为:

[('李四', 18), ('王五', 22), ('张三', 20), ('赵六', 19)]

在这里,我们使用了sorted()函数对字典的items()方法返回的键-值对列表进行排序。key参数的值为一个lambda函数,该函数返回 个元素(人名)作为排序依据。

4. 按字典键降序排序

同样地,如果我们想要按照人名降序排序,只需要将lambda函数改为返回元组的 个元素的相反数:

sorted_dict = sorted(age_dict.items(), key=lambda x: -x[0])
print(sorted_dict)

输出结果为:

[('赵六', 19), ('张三', 20), ('王五', 22), ('李四', 18)]

总结

以上就是按照指定排序规则对字典进行排序的方法。当我们需要按照字典键或值进行排序时,可以使用sorted()函数和lambda函数来排序。在这里需要注意的是,sorted()函数返回的是一个排好序的列表,而不是字典。如果想要获得排好序的字典,可以使用collections模块中的OrderedDict类。