欢迎访问宙启技术站
智能推送

Python中的字典排序函数sorted()的使用方法

发布时间:2023-05-26 15:44:24

Python中的字典是一种映射类型的数据结构,表示键值对的集合,其中每个键都是 的。由于字典的无序性,在按照特定的排序规则对字典的键或值进行排序时,需要借助特定的函数或方法。其中,sorted()函数是一种常见的对字典进行排序的方法,而本文则详细介绍sorted()函数的使用方法。

1、sorted()函数的基本用法

如前所述,sorted()函数是Python内置的排序函数,它可以对对象进行排序,并返回一个排好序的列表。其中,sorted()函数具有如下格式:

sorted(iterable, key=None, reverse=False)

其中,参数iterable是需要排序的对象,它可以是列表、元组、集合或字典等可迭代对象。参数key用于指定排序的键(即排序规则),它可以是函数、匿名函数或lambda表达式等。而reverse则用于指定是否倒序排序,其取值为True或False。

2、对字典键进行排序

当需要对字典的键进行排序时,需要将字典的键列表作为sorted()函数的 个参数,例如:

scores = {'Alice':75, 'Bob':82, 'Charlie':68, 'David':99, 'Eva':61}
names = sorted(scores.keys())
print(names)

运行上述代码后,将输出一个按字典键排序后的列表,即:

['Alice', 'Bob', 'Charlie', 'David', 'Eva']

3、对字典值进行排序

如果要对字典的值进行排序,则需要使用参数key指定一个排序的函数,例如:

scores = {'Alice':75, 'Bob':82, 'Charlie':68, 'David':99, 'Eva':61}
sorted_scores = sorted(scores.items(), key=lambda kv:kv[1])
print(sorted_scores)

上述代码中,我们使用sorted()函数对scores的键值对进行排序,key=lambda kv:kv[1]表示按照字典值进行排序,其中lambda函数kv:kv[1]表示获取键值对中的值。最后,将排好序的键值对列表输出,即:

[('Eva', 61), ('Charlie', 68), ('Alice', 75), ('Bob', 82), ('David', 99)]

4、倒序排序

如果需要对字典进行倒序排序,则只需将reverse参数设置为True即可,例如:

scores = {'Alice':75, 'Bob':82, 'Charlie':68, 'David':99, 'Eva':61}
sorted_scores = sorted(scores.items(), key=lambda kv:kv[1], reverse=True)
print(sorted_scores)

上述代码中,我们使用了key和reverse两个参数,分别表示按照值进行排序和倒序。最终输出按值从大到小排序的列表,即:

[('David', 99), ('Bob', 82), ('Alice', 75), ('Charlie', 68), ('Eva', 61)]

5、字符长度排序

如果需要对字典根据字符长度进行排序,需要新增一个计算字符长度的函数,在key中传入该函数即可,例如:

items = {'apple': 2, 'banana': 4, 'orange': 1, 'kiwi': 3}
sorted_items = sorted(items.items(), key=lambda kv: len(kv[0]))
print(sorted_items)

上述代码中,我们新增了一个计算字符长度的lambda函数,即len(kv[0]),表示获取键的长度。最后,输出按照键长度排序的列表,即:

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

6、小结

以上就是在Python中使用sorted()函数对字典进行排序的方法。其中,在对字典进行排序时,需要注意将字典的键或值列表传入sorted()函数,并指定排序规则。如果需要倒序排序,则需将reverse参数设置为True。同时,借助lambda表达式等函数,能够更灵活地进行字典排序操作。