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

Python中的sorted()函数——快速排序列表中的元素

发布时间:2023-05-22 01:07:14

在Python中,sorted()是一个用于对列表、元组、字符串等序列进行排序的内置函数。它可以接收一个可迭代对象作为输入,返回一个新的已排序的列表。

sorted()函数的使用非常简单。它接收一个要排序的可迭代对象,并返回一个已排序的列表。以下是一个使用示例:

>>> lst = [3, 1, 4, 1, 5, 9, 2, 6]
>>> sorted_lst = sorted(lst)
>>> print(sorted_lst)
[1, 1, 2, 3, 4, 5, 6, 9]

当然,如果原始列表是元组、字符串等可迭代对象,同样可以使用sorted()函数进行排序。例如:

>>> tpl = (3, 1, 4, 1, 5, 9, 2, 6)
>>> sorted_tpl = sorted(tpl)
>>> print(sorted_tpl)
[1, 1, 2, 3, 4, 5, 6, 9]

>>> s = "hello, world"
>>> sorted_s = sorted(s)
>>> print(sorted_s)
[' ', ',', 'd', 'e', 'h', 'l', 'l', 'o', 'r', 'w']

sorted()函数的默认排序方式是升序排序,但也可以通过传递一个reverse参数来进行倒序排序。以下是一个使用示例:

>>> lst = [3, 1, 4, 1, 5, 9, 2, 6]
>>> sorted_lst = sorted(lst, reverse=True)
>>> print(sorted_lst)
[9, 6, 5, 4, 3, 2, 1, 1]

sorted()函数的排序方式可以自定义,通过传递一个key参数来指定排序规则。例如,可以按字符串的长度来排序一个字符串列表:

>>> lst = ['abc', 'a', 'xyz', 'bcd', 'ef']
>>> sorted_lst = sorted(lst, key=len)
>>> print(sorted_lst)
['a', 'ef', 'abc', 'bcd', 'xyz']

在这个例子中,key=len指定了按字符串的长度来排序。这里使用了Python中内置的len()函数。

sorted()函数使用的排序算法是快速排序(或称为快排)。快排是一种高效的排序算法,其时间复杂度为O(nlogn),平均性能优于大多数其他排序算法。

总之,sorted()函数是一个Python中非常常用的排序函数,简单易用。它可以实现默认的升序排序,也可以实现自定义的排序规则,是Python中必不可少的一个功能。