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

Python中的 sorted() 函数- 用法和案例演示

发布时间:2023-05-24 03:32:16

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()函数时,我们也需要注意一些细节,比如是否需要进行深拷贝等。