📜  Python的sort()(1)

📅  最后修改于: 2023-12-03 15:19:34.487000             🧑  作者: Mango

Python的sort()方法介绍

sort()是Python中用于对列表进行排序的内置方法。它允许程序员对列表中的元素按照一定的规则进行排序,以便更轻松地处理和操作数据。

语法

sort()方法的语法如下所示:

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

参数说明:

  • key(可选):用于指定一个排序的规则,可以是一个函数或者是一个lambda表达式。默认值是None,表示使用元素本身进行排序。
  • reverse(可选):用于指定排序的顺序。如果为True,则按降序排序;如果为False(默认值),则按升序排序。
示例

下面是sort()方法的几个常见用例:

按升序排序列表
numbers = [3, 1, 5, 2, 4]
numbers.sort()
print(numbers)

输出结果:

[1, 2, 3, 4, 5]
按降序排序列表
numbers = [3, 1, 5, 2, 4]
numbers.sort(reverse=True)
print(numbers)

输出结果:

[5, 4, 3, 2, 1]
使用自定义排序规则
fruits = ["apple", "banana", "cherry", "dragon fruit"]
fruits.sort(key=lambda x: len(x))
print(fruits)

输出结果:

['apple', 'banana', 'cherry', 'dragon fruit']

在这个例子中,我们使用了key参数来指定按照字符串的长度进行排序。

对包含多个字段的对象列表进行排序
class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age
    
    def __repr__(self):
        return f"Person(name={self.name}, age={self.age})"

people = [Person("Alice", 25), Person("Bob", 30), Person("Charlie", 20)]
people.sort(key=lambda x: x.age)
print(people)

输出结果:

[Person(name=Charlie, age=20), Person(name=Alice, age=25), Person(name=Bob, age=30)]

在这个例子中,我们使用了key参数来指定按照人物年龄进行排序。

注意事项
  • sort()方法会直接修改原始列表,在排序完成后列表内容将被改变。
  • 如果要创建一个新的有序列表而不改变原始列表,可以使用sorted()函数。