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

sort()函数进行集合排序?

发布时间:2023-11-08 08:56:56

sort()函数是Python中的内置函数,用于对列表进行排序操作。它可以对任意类型的元素进行排序,包括数字、字符串以及自定义对象。

sort()函数的基本用法是对列表进行原地排序,即在原列表的基础上进行排序,而不会返回一个新的排序后的列表。它的用法如下:

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

其中,key是一个可选参数,用于指定一个函数,该函数将被应用于列表中的每个元素,用于生成排序依据。reverse也是一个可选参数,用于指定是否按照逆序进行排序,默认为False,即按照升序排序。

sort()函数的排序规则是:首先根据key函数生成排序依据,然后根据生成的依据对列表进行排序。如果没有指定key函数,默认按照元素的大小进行排序。对于数字和字符串,sort()函数会按照一定的规则进行排序,对于自定义对象,可以通过定义__lt__()方法来指定排序规则。

下面是一些示例,展示了sort()函数的具体用法和效果。

1. 对数字列表进行排序:

nums = [5, 2, 9, 1, 6]

nums.sort()

print(nums)  # 输出: [1, 2, 5, 6, 9]

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

words = ['banana', 'apple', 'cherry', 'orange']

words.sort()

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

3. 对自定义对象列表进行排序:

class Person:

    def __init__(self, name, age):

        self.name = name

        self.age = age

    def __lt__(self, other):

        return self.age < other.age

people = [Person('Alice', 25), Person('Bob', 20), Person('Charlie', 30)]

people.sort(key=lambda person: person.age)

for person in people:

    print(person.name)  # 输出:Bob, Alice, Charlie

sort()函数是一个非常常用的排序函数,但需要注意的是,sort()函数是原地排序,即会改变列表本身的顺序。如果需要得到一个新的排序后的列表,可以使用sorted()函数。这两个函数的使用方法和效果类似,但sorted()函数返回排序后的列表,不会改变原列表的排序。