📜  Python - 排序字典键和值列表(1)

📅  最后修改于: 2023-12-03 15:33:57.084000             🧑  作者: Mango

Python - 排序字典键和值列表

Python中的字典是非常有用的数据结构之一。但是,在某些情况下,需要对字典的键或值进行排序。

本文将介绍如何在Python中对字典的键和值进行排序,以及如何获取排序后的字典。

排序字典键

对于字典的键进行排序,可以使用Python内置的sorted()函数。只需传递字典的键列表作为参数,就可以返回排过序的键列表。

my_dict = {'apple': 3, 'banana': 2, 'pear': 1, 'orange': 4, 'kiwi': 5}
sorted_keys = sorted(my_dict.keys())
print(sorted_keys)

输出:

['apple', 'banana', 'kiwi', 'orange', 'pear']

这将按字母顺序排序字典的键。

排序字典值

对于字典的值进行排序,可以使用sorted()函数的key参数。该参数接受一个函数来决定排序规则。在这种情况下,需要使用dict.get方法来检索值,然后将其作为key传递给sorted()函数。

my_dict = {'apple': 3, 'banana': 2, 'pear': 1, 'orange': 4, 'kiwi': 5}
sorted_values = sorted(my_dict, key=my_dict.get)
print(sorted_values)

输出:

['pear', 'banana', 'apple', 'orange', 'kiwi']

这将按值的升序排序字典。

需要注意的是,使用中文时,可能需要通过传递参数sort_keys=True以按照Unicode排序。

排序字典项

对于字典项进行排序意味着对键值对进行排序。可以使用与键相同的方法来排序字典项。

my_dict = {'apple': 3, 'banana': 2, 'pear': 1, 'orange': 4, 'kiwi': 5}
sorted_items = sorted(my_dict.items())
print(sorted_items)

输出:

[('apple', 3), ('banana', 2), ('kiwi', 5), ('orange', 4), ('pear', 1)]

这将按键的升序排序字典项。

获取排序后的字典

可以使用collections.OrderedDict类创建排序后的字典。

import collections

my_dict = {'apple': 3, 'banana': 2, 'pear': 1, 'orange': 4, 'kiwi': 5}
sorted_dict = collections.OrderedDict(sorted(my_dict.items()))
print(sorted_dict)

输出:

OrderedDict([('apple', 3), ('banana', 2), ('kiwi', 5), ('orange', 4), ('pear', 1)])

这将创建一个按键的升序排列的有序字典。

总结

在Python中,对字典键和值进行排序非常方便。可以使用内置的sorted()函数和key参数进行排序。collections.OrderedDict类可用于创建排序后的字典。