Python中排序函数的使用:sorted(),reversed()等
Python中排序函数是十分常用的,它包括sorted()、reversed()等,它们可以根据要求对一个列表或元组进行排序,以下是各种排序函数的详细介绍。
sorted()函数
格式:sorted(iterable,key=None,reverse=False)
参数:
1.iterable:可迭代的数据类型,如列表、元组、字符串、文件对象等。
2.key:用来进行比较的函数,可选参数。
3.reverse:是否降序排序,是一个布尔值,默认为False。
返回值:返回一个新的列表。
sorted()函数用于对列表或元组中的所有元素进行排序,并返回排序后的新列表。它可以接受一个可迭代对象和若干个可选参数,其中key参数和reverse参数分别用于自定义排序方式和控制排序结果是升序还是降序。
例如,对一个列表进行升序排序:
lst=[4,2,6,1,8,3]
lst_sorted=sorted(lst)
print(lst_sorted)
输出结果:[1, 2, 3, 4, 6, 8]
同样,我们可以使用reverse参数进行降序排列:
lst=[4,2,6,1,8,3]
lst_sorted=sorted(lst,reverse=True)
print(lst_sorted)
输出结果:[8, 6, 4, 3, 2, 1]
之前我们提到的key参数可以用来指定排序规则。比如,我们可以按字符串长度进行排序:
str_lst=['aaa','bc','d','efgh','jklmn']
str_lst_sorted=sorted (str_lst,key=lambda x:len(x))
print(str_lst_sorted)
输出结果:['d', 'bc', 'aaa', 'efgh', 'jklmn']
这里我们用lambda表达式定义了排序规则,即将所有字符串按长度由小到大排序。
reversed()函数
格式:reversed(sequence)
参数:sequence:表示一个序列对象,通常是列表、元组或字符串。
返回值:返回一个可迭代的序列对象。
reversed()函数用于对序列进行翻转,它返回一个可迭代的反向序列对象。与sorted()函数不同,reversed()函数没有参数。使用时要注意,reversed()函数返回的结果与原序列不同,它是一个迭代器,需要使用list()函数将其转化为列表才能查看结果。
例如,对一个列表进行翻转:
lst=[1,2,3,4,5]
lst_reverse=reversed(lst)
lst_reverse=list(lst_reverse)
print(lst_reverse)
输出结果:[5, 4, 3, 2, 1]
补充:sort()方法
在Python中,列表还有一个sort()方法可以进行排序。它与sorted()函数不同,它是直接修改原列表的顺序,而sorted()函数则返回一个新的排序后的列表。
例如,对一个列表进行升序排序:
lst=[4,2,6,1,8,3]
lst.sort()
print(lst)
输出结果:[1, 2, 3, 4, 6, 8]
sort()方法也有key和reverse参数,用法与sorted()函数相同。
总结
Python中的排序函数可以大大提高我们的编程效率,在实际开发和算法实现中经常用到。此外,还有很多其他的排序算法,如快速排序、堆排序、冒泡排序等,可以根据实际情况选择。
