Python实现排序的方式有:内置函数sort()和sorted()以及lambda函数

发布时间 2023-09-19 21:03:37作者: 勾影变形计

排序是计算机编程中经常需要用到的操作,它将一组数据按照规则重新排列,以便更好地处理数据。在Python中,有多种方法可以对数组进行排序,本文将从多个方面进行介绍。

一、Python中的排序方法

Python中内置了多个排序算法,包括冒泡排序、插入排序、选择排序、快速排序等。使用内置的sort()函数可以实现排序操作,具体使用方法如下:


array = [3, 1, 4, 2, 0]
array.sort()
print(array)
# 输出结果为 [0, 1, 2, 3, 4]

此方法可以对列表、元组、字典等数据类型进行排序,sort()函数还可以传递参数来改变排序规则,例如按照倒序进行排序:


array = [3, 1, 4, 2, 0]
array.sort(reverse=True)
print(array)
# 输出结果为 [4, 3, 2, 1, 0]

二、使用sorted()函数进行排序

除了内置的sort()函数外,Python还有一个sorted()函数可以用来进行排序。不同于sort()函数,sorted()函数返回一个全新的排好序的数组,原数组不会被修改。使用方法如下:


array = [3, 1, 4, 2, 0]
new_array = sorted(array)
print(new_array)
# 输出结果为 [0, 1, 2, 3, 4]

与sort()函数一样,sorted()函数也可以传递参数进行不同规则的排序操作,例如按照绝对值进行排序:


array = [3, -1, 4, -2, 0]
new_array = sorted(array, key=abs)
print(new_array)
# 输出结果为 [0, -1, 2, -3, 4]

三、使用lambda函数进行排序

另一种使用Python进行排序的方法是通过lambda函数,这种方法简单易懂,代码量也较少。使用方法如下:


array = [3, 1, 4, 2, 0]
new_array = sorted(array, key=lambda x: -x)
print(new_array)
# 输出结果为 [4, 3, 2, 1, 0]

以上代码使用lambda函数来进行倒序排序,同样可以进行其他规则的排序操作。

四、对多维数组进行排序

除了对一维数组进行排序外,有时候我们需要对多维数组进行排序,例如排序学生的分数,可以先按照数学成绩排序,再按照英语成绩排序。针对这种需求,Python提供了多种方法进行排序,使用方法如下:


grades = [("Alice", 89, 92), ("Bob", 72, 81), ("Charlie", 95, 97), ("Dave", 85, 82)]
sorted_grades = sorted(grades, key=lambda x: (x[1], x[2]), reverse=True)
print(sorted_grades)
# 输出结果为 [('Charlie', 95, 97), ('Alice', 89, 92), ('Dave', 85, 82), ('Bob', 72, 81)]

以上代码通过sorted()函数对分数进行排序,先按照数学成绩排名,如果数学成绩相同则按照英语成绩排名,实现了多维数据的排序。

五、总结

Python提供了多种方法对数组进行排序,包括使用内置的sort()函数、sorted()函数,以及lambda函数等。此外,还可以针对多维数组进行排序,实现更多样化的排序需求。无论使用哪种方法,都可以通过参数传递实现不同规则的排序操作。