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

sort()函数:用途和参数详解

发布时间:2023-05-22 07:32:35

sort()函数是Python内置的一个排序函数,用于将一个列表(或可迭代对象)中的元素按照特定的方式排序。

sort()函数的用途:

1. 对列表进行升序或降序排序;

2. 对自定义对象进行排序。

sort()函数的语法:

list.sort(key=None, reverse=False)

参数解释:

1. key:用于排序的关键字,可以是函数或lambda表达式,用于定制排序规则;

2. reverse:排序规则,True为降序排列,False为升序排列。

示例:

lst = [3, 2, 4, 1]

lst.sort()  # 默认按升序排序

print(lst)  # 输出:[1, 2, 3, 4]

lst.sort(reverse=True)  # 按降序排列

print(lst)  # 输出:[4, 3, 2, 1]

lst = ["apple", "banana", "cherry", "orange"]

lst.sort(key=str.upper)  # 将元素转为大写,按字母顺序排序

print(lst)  # 输出:['apple', 'banana', 'cherry', 'orange']

lst = [("apple", 5), ("banana", 3), ("cherry", 7)]

lst.sort(key=lambda x: x[1])  # 按元组第二个元素升序排列

print(lst)  # 输出:[('banana', 3), ('apple', 5), ('cherry', 7)]

自定义对象的排序:

如果需要对自定义对象进行排序,可以在类中定义__lt__()方法,指定对象的比较规则,然后调用sort()函数进行排序。

示例:

class Student:

    def __init__(self, name, score):

        self.name = name

        self.score = score

    def __lt__(self, other):  # 比较规则:按成绩排序

        return self.score < other.score

students = [Student("Alice", 90),

            Student("Bob", 80),

            Student("Chris", 70)]

students.sort()  # 按成绩升序排列

for s in students:

    print(s.name, s.score)

输出:

Chris 70

Bob 80

Alice 90

另外,sort()函数还有一个sorted()函数作为替代品,sorted()函数能够对任何可迭代的对象进行排序,与sort()函数不同,它返回一个新的排序列表。

示例:

lst = [3, 2, 4, 1]

new_lst = sorted(lst)  # 返回排序后的新列表

print(new_lst)  # 输出:[1, 2, 3, 4]

总结:

sort()函数是Python内置的一个排序函数,用于将一个列表中的元素排序。sort()函数有两个参数key和reverse,分别用于定制排序规则和指定排序规则。除此之外,sort()函数还能够对自定义对象进行排序。与sort()函数不同的是,sorted()函数能够对任何可迭代的对象进行排序,并且返回一个新的排序列表。