详解Python 字典排序

  • Post category:Python

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即可。

在实际应用中,可以根据具体的需求选择使用哪种方法排序,从而满足不同的排序要求。