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

Python内置函数:sorted()-如何使用Python内置函数sorted()对列表进行排序?

发布时间:2023-09-23 08:41:46

sorted()是Python的一个内置函数,用于对列表进行排序。它可以接受一个可迭代对象作为参数,并返回一个新的排好序的列表,而不会改变原来的列表。

sorted()函数的基本语法如下:

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

其中,iterable是可迭代对象,例如列表、元组、字符串等;key是可选的参数,用于指定排序时使用的比较函数;reverse是可选的参数,用于指定是否以降序方式排序。

在没有指定key和reverse参数时,sorted()函数会默认使用正序方式对可迭代对象进行排序。例如,对一个列表进行正序排序,可以直接调用sorted()函数:

numbers = [5, 2, 9, 1, 7]
sorted_numbers = sorted(numbers)
print(sorted_numbers)   # 输出:[1, 2, 5, 7, 9]

可以看到,sorted()函数返回的结果是一个新的排序好的列表,原来的numbers列表并没有发生改变。

如果需要对列表进行降序排序,可以在调用sorted()函数时传入reverse=True参数:

numbers = [5, 2, 9, 1, 7]
sorted_numbers = sorted(numbers, reverse=True)
print(sorted_numbers)   # 输出:[9, 7, 5, 2, 1]

可以看到,传入reverse=True参数后,sorted()函数会将列表中的元素按照降序排列。

除了正序和降序排序之外,还可以使用key参数指定自定义比较函数。比较函数可以是一个lambda函数、一个方法或一个自定义的函数。比较函数需要接受一个参数,表示列表中的每个元素,然后返回一个可比较的值。根据比较函数返回的值进行排序。

例如,对一个字符串列表按照字符串长度进行排序,可以使用lambda函数作为key参数:

words = ['apple', 'banana', 'orange', 'kiwi']
sorted_words = sorted(words, key=lambda x: len(x))
print(sorted_words)   # 输出:['kiwi', 'apple', 'banana', 'orange']

可以看到,按照字符串长度进行排序之后,列表中的元素根据长度从小到大排列。

除了列表,sorted()函数还可以对其他类型的可迭代对象进行排序,例如元组、字符串等。

总结来说,sorted()是Python内置的一个用于排序的函数,可以对列表进行正序或降序排序,并且可以使用key参数指定自定义的比较函数。使用sorted()函数可以方便地对列表进行排序,而不改变原来的列表。