Python实现对字典分别按键(key)和值(value)进行排序的方法分析

  • Post category:Python

以下是Python实现对字典分别按键(key)和值(value)进行排序的方法分析的完整攻略。

1. 对字典按键(key)进行排序

1.1 使用sorted()函数

可以使用Python内置的sorted()函数来对字典按键(key)进行排序。由于字典本身是非有序的,因此需要将字典转换成可迭代对象,并将其键(key)进行排序。下面是示例代码:

my_dict = {'apple': 10, 'pear': 20, 'banana': 5, 'orange': 15}
sorted_dict = dict(sorted(my_dict.items(), key=lambda x: x[0]))

print(sorted_dict)

上述代码中,使用sorted函数将my_dict按照键(key)的字典序进行排序,返回一个元组数组,最后用dict()函数将其转换成字典类型。其中lambda x: x[0]表示排序的依据是字典的键(key)。

输出结果为:

{'apple': 10, 'banana': 5, 'orange': 15, 'pear': 20}

1.2 使用collections.OrderedDict()

collections模块提供了一个OrderedDict类,用于对字典按照插入顺序进行排序。可以先将my_dict转换成OrderedDict类型,再将其按照键(key)排序。下面是示例代码:

from collections import OrderedDict

my_dict = {'apple': 10, 'pear': 20, 'banana': 5, 'orange': 15}
ordered_dict = OrderedDict(sorted(my_dict.items(), key=lambda x: x[0]))

print(ordered_dict)

其中lambda x: x[0]表示排序的依据是字典的键(key)。

输出结果为:

OrderedDict([('apple', 10), ('banana', 5), ('orange', 15), ('pear', 20)])

2. 对字典按值(value)进行排序

2.1 使用sorted()函数

同样可以使用sorted()函数对字典按值(value)进行排序。由于字典不支持直接按值排序,因此需要用字典的items()方法将其转换为可迭代的元组数组,在sorted()函数里通过键值对的值(value)进行排序。下面是示例代码:

my_dict = {'apple': 10, 'pear': 20, 'banana': 5, 'orange': 15}
sorted_dict = dict(sorted(my_dict.items(), key=lambda x: x[1]))

print(sorted_dict)

上述代码中,使用sorted函数将my_dict按值(value)进行排序,返回一个元组数组,最后用dict()函数将其转换成字典类型。其中lambda x: x[1]表示排序的依据是字典的值(value)。

输出结果为:

{'banana': 5, 'apple': 10, 'orange': 15, 'pear': 20}

2.2 使用collections.OrderedDict()

OrderedDict类同样适用于按值(value)排序。可以先将my_dict按照值(value)排序后,再转换成OrderedDict类型。下面是示例代码:

from collections import OrderedDict

my_dict = {'apple': 10, 'pear': 20, 'banana': 5, 'orange': 15}
ordered_dict = OrderedDict(sorted(my_dict.items(), key=lambda x: x[1]))

print(ordered_dict)

其中lambda x: x[1]表示排序的依据是字典的值(value)。

输出结果为:

OrderedDict([('banana', 5), ('apple', 10), ('orange', 15), ('pear', 20)])

至此,Python实现对字典分别按键(key)和值(value)进行排序的方法分析完毕。