以下是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)进行排序的方法分析完毕。