Python 字典排序是指将字典中的键或值进行排序的操作。字典在默认情况下是无序的,但是有时候需要按照特定的顺序进行排序,这时就需要使用到字典排序。以下是Python 字典排序的完整攻略,包括按键排序和按值排序两种方法。
按键排序
按键排序是指将字典中的键按照特定的顺序进行排序。可以使用Python内置的sorted函数,结合lambda表达式来实现:
# 创建一个字典
d = {'apple': 5, 'banana': 2, 'pear': 7, 'orange': 1}
# 按键排序
sorted_d = dict(sorted(d.items(), key=lambda x: x[0]))
# 输出排序后的字典
print(sorted_d)
运行结果为:
{'apple': 5, 'banana': 2, 'orange': 1, 'pear': 7}
以上示例中,使用sorted函数对字典的键进行排序,参数key传入一个lambda表达式,表示按照字典键(即x[0])进行排序。最后使用dict函数将排序后的结果转换为字典格式,并输出。
按值排序
按值排序是指将字典中的值按照特定的顺序进行排序。同样可以使用Python内置的sorted函数,结合lambda表达式来实现:
# 创建一个字典
d = {'apple': 5, 'banana': 2, 'pear': 7, 'orange': 1}
# 按值排序
sorted_d = dict(sorted(d.items(), key=lambda x: x[1]))
# 输出排序后的字典
print(sorted_d)
运行结果为:
{'orange': 1, 'banana': 2, 'apple': 5, 'pear': 7}
以上示例中,使用sorted函数对字典的值进行排序,参数key传入一个lambda表达式,表示按照字典值(即x[1])进行排序。最后使用dict函数将排序后的结果转换为字典格式,并输出。
除了lambda表达式,也可以使用itemgetter函数来进行排序。例如按键排序的示例代码可以改写如下:
from operator import itemgetter
# 创建一个字典
d = {'apple': 5, 'banana': 2, 'pear': 7, 'orange': 1}
# 按键排序
sorted_d = dict(sorted(d.items(), key=itemgetter(0)))
# 输出排序后的字典
print(sorted_d)
以上代码与之前的示例效果一样,只是使用的是itemgetter函数而不是lambda表达式。当然,按值排序也可以使用itemgetter函数,只需要将参数0改为1即可。
在实际应用中,可以根据具体的需求选择使用哪种方法排序,从而满足不同的排序要求。