Python中sorted函数的使用及排序方法讲解
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参数中使用多个条件进行排序等,具体可参考官方文档。
