Python中的 sorted() 函数- 用法和案例演示
Python中的sorted()函数用于对可迭代对象进行排序,它返回一个新的排序列表。sorted()函数提供了多种参数和选项,以适应不同的排序需求。下面我们将通过案例演示来介绍sorted()函数的使用。
一、基本用法
首先来看sorted()函数的最基本用法。我们可以用sorted()函数对一个列表进行排序。例如,我们有以下列表:
numbers = [6, 3, 8, 1, 9, 2]
要对该列表按升序排序,我们可以这样写:
sorted_numbers = sorted(numbers)
该语句将返回一个新的排序列表,sorted_numbers为:
[1, 2, 3, 6, 8, 9]
如果我们要按降序排列该列表,可以使用reverse参数,如下所示:
reverse_numbers = sorted(numbers, reverse=True)
该语句将返回一个新的降序排序列表,reverse_numbers为:
[9, 8, 6, 3, 2, 1]
二、对字典排序
sorted()函数不仅可以对列表进行排序,还可以对字典进行排序。以下是一个字典的例子:
scores = {'Alice': 85, 'Bob': 72, 'Charlie': 93, 'David': 64}
我们可以使用sorted()函数根据字典的键排序:
sorted_scores = sorted(scores)
sorted_scores将为一个排序后的字典键列表,值为:
['Alice', 'Bob', 'Charlie', 'David']
如果我们要使用字典的值进行排序,可以使用key参数。例如:
sorted_scores_by_value = sorted(scores, key=lambda x: scores[x])
该语句将返回一个根据字典值排序的新的列表,sorted_scores_by_value为:
['David', 'Bob', 'Alice', 'Charlie']
三、对元组排序
sorted()函数还可以对元组进行排序。以下是一个元组的例子:
students = [('Alice', 85), ('Bob', 72), ('Charlie', 93), ('David', 64)]
如果我们要根据元组中的第二个项(即分数)排序,可以使用key参数,如下所示:
sorted_students_by_score = sorted(students, key=lambda x: x[1])
该语句将返回一个根据分数排序的新的元组列表,sorted_students_by_score为:
[('David', 64), ('Bob', 72), ('Alice', 85), ('Charlie', 93)]
四、使用cmp参数
在Python 2.x中,sorted()函数还有一个cmp参数,用于指定比较函数。该参数接受两个参数,分别是要比较的两个元素。比较函数返回一个负数、零、或正数,表示 个元素应该排在前面、相等、或后面。例如:
def my_cmp(x, y):
if x < y:
return -1
elif x == y:
return 0
else:
return 1
numbers = [6, 3, 8, 1, 9, 2]
sorted_numbers = sorted(numbers, cmp=my_cmp)
该例子中,我们定义了一个自定义的比较函数my_cmp,它将数字按升序排列。在调用sorted()函数时,我们将该函数作为cmp参数传递给了sorted()函数。sorted_numbers将为:
[1, 2, 3, 6, 8, 9]
需要注意的是,在Python 3.x中,cmp参数已经被移除,所以不能再使用。
五、总结
以上是sorted()函数的使用方法和案例演示。除了基本用法之外,sorted()函数还有许多参数和选项,灵活运用可满足各种排序需求。在实际工作中,我们可以根据具体情况选择不同的参数和选项来进行排序。在使用sorted()函数时,我们也需要注意一些细节,比如是否需要进行深拷贝等。
