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

Python中sorted函数的使用及排序方法讲解

发布时间:2023-06-16 09:09:43

Python中的sorted()是一种常用的排序函数,它可以对列表、元组、字典、集合等容器类型数据进行排序,并返回一个新的排序后的容器。其基本语法如下:

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

其中,iterable表示需要进行排序的可迭代对象,key表示排序条件,可以是一个函数或者lambda表达式,并且reverse表示排序顺序,True表示降序,False表示升序。下面我们来逐个讲解:

1. 对列表或元组的排序

使用sorted()函数对列表和元组进行排序,可以直接传入需要进行排序的列表或元组即可,如下所示:

lst = [3,7,1,4,5,9,2]
print(sorted(lst))  # [1, 2, 3, 4, 5, 7, 9]

tup = (3,7,1,4,5,9,2)
print(sorted(tup))  # [1, 2, 3, 4, 5, 7, 9]

2. 对字典的排序

Python中的字典是无序的,所以需要对字典进行排序时,我们可以先将字典转换为列表,并使用sorted()函数进行排序,如下所示:

dict1 = {'Tom':80, 'Lucy':90, 'Lisa':70, 'John':85}
lst = sorted(dict1.items(), key=lambda x:x[1])
print(lst)  # [('Lisa', 70), ('Tom', 80), ('John', 85), ('Lucy', 90)]

以上代码中,我们使用sorted()函数对字典dict1进行排序,将其转换为一个元素为元组的列表lst,key参数指定排序的条件为字典的值,同时使用lambda表达式获取值进行排序。

3. 对集合的排序

集合中的元素是无序的,而且不允许重复,如果需要对集合进行排序,我们可以先将集合转换为列表再排序,如下所示:

set1 = {3,7,1,4,5,9,2}
lst = sorted(set1)
print(lst)  # [1, 2, 3, 4, 5, 7, 9]

4. 自定义排序规则

如果需要按照自定义的条件进行排序,我们可以通过在key参数中指定函数或lambda表达式来实现。下面是一个按照字符串长度进行排序的例子:

lst = ['apple', 'banana', 'pear', 'orange']
print(sorted(lst, key=lambda x:len(x)))  # ['pear', 'apple', 'orange', 'banana']

该例中,我们使用lambda表达式获取字符串的长度进行排序。

5. 反向排序

如果需要对容器进行反向排序,我们可以在sorted()函数中设置reverse参数为True:

lst = [3,7,1,4,5,9,2]
print(sorted(lst, reverse=True))  # [9, 7, 5, 4, 3, 2, 1]

以上就是使用sorted()函数实现常规排序的方法,如果您遇到更为复杂的排序需求,还可以使用sorted()函数的更高级用法,如在key参数中使用多个条件进行排序等,具体可参考官方文档。