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

Python中排序函数的使用:sorted(),reversed()等

发布时间:2023-06-22 20:16:54

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中的排序函数可以大大提高我们的编程效率,在实际开发和算法实现中经常用到。此外,还有很多其他的排序算法,如快速排序、堆排序、冒泡排序等,可以根据实际情况选择。