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

如何在Python中使用sort函数对列表排序?

发布时间:2023-05-30 10:11:30

Python中的sort函数是一个内置函数,可以用来对列表进行排序。它可以按升序或降序排列列表中的元素,并且可以接受一个可选的关键字参数,用于指定根据哪个属性进行排序。

下面介绍一下如何使用sort函数对列表排序:

1. 对整数列表进行排序

首先,我们来看看如何对一个整数列表进行排序。假设我们有一个列表如下:

numbers = [2, 5, 1, 9, 3]

如果我们想按升序排列这个列表,只需使用sort方法:

numbers.sort()

现在,numbers列表就按升序排列了。如果我们希望按降序排列,可以通过在sort方法中使用reverse参数来实现:

numbers.sort(reverse=True)

2. 对字符串列表进行排序

现在,我们来看看如何对一个字符串列表进行排序。假设我们有一个列表如下:

words = ['apple', 'banana', 'orange', 'pear', 'strawberry']

如果我们想按字母表顺序排序这个列表,只需使用sort方法:

words.sort()

现在,words列表就按字母表顺序排列了。如果我们希望按字母表倒序排列,可以通过在sort方法中使用reverse参数来实现:

words.sort(reverse=True)

3. 对对象列表进行排序

现在,我们来看看如何对一个对象列表进行排序。假设我们有一个三个学生的列表如下:

class Student:
    def __init__(self, name, age):
        self.name = name
        self.age = age
        
stu1 = Student('Tom', 18)
stu2 = Student('Lucy', 17)
stu3 = Student('Mike', 19)

students = [stu1, stu2, stu3]

如果我们希望按照学生年龄排序这个列表,可以在sort方法中指定一个函数,用于返回一个比较关键字,即基于哪个属性进行排序,如下所示:

def get_age(student):
    return student.age

students.sort(key=get_age)

现在,students列表就按照学生年龄升序排序了。

4. 排序并删除重复元素

如果我们希望先对列表进行排序,然后再删除其中的重复元素,可以使用set和sorted函数来实现。

假设我们有一个整数列表如下:

numbers = [2, 5, 1, 9, 3, 5, 2, 8, 1]

我们可以先对这个列表进行排序:

numbers = sorted(numbers)

现在,numbers列表已按升序排列了。然后,我们可以使用set函数删除其中的重复元素:

numbers = list(set(numbers))

现在,numbers列表中就只包含不同的元素了。

综上所述,sort函数是一个十分实用的函数,可以用于对Python中多种类型的列表进行排序。需要注意的是,如果我们对一个列表执行了sort方法,那么这个列表将会被修改,因此在对已有列表进行排序时,需要注意备份。