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

如何使用 sorted() 函数对列表排序

发布时间:2023-06-30 22:26:40

sorted() 函数可以用来对列表进行排序,可以按照默认的方式进行升序排序,也可以根据指定的条件进行自定义排序。下面将详细介绍如何使用 sorted() 函数对列表进行排序。

1. 默认排序

当我们没有指定排序条件时,sorted() 函数将会按照默认的方式对列表进行升序排序。下面是一个简单的示例:

numbers = [5, 2, 1, 3, 4]
sorted_numbers = sorted(numbers)
print(sorted_numbers)

输出结果为:[1, 2, 3, 4, 5]

在默认的排序方式下,sorted() 函数会比较列表中的元素,并将它们按照升序进行排序。

2. 降序排序

如果我们需要对列表进行降序排序,可以通过传递一个 reverse=True 的参数给 sorted() 函数来实现。下面是一个示例:

numbers = [5, 2, 1, 3, 4]
sorted_numbers = sorted(numbers, reverse=True)
print(sorted_numbers)

输出结果为:[5,4,3,2,1]

在这个示例中,由于传递了 reverse=True 参数,所以 sorted() 函数会按照降序对列表进行排序。

3. 自定义排序条件

有时候,我们需要根据自己的需求来定义排序的方式。我们可以通过传递一个关键字函数(key function)给 sorted() 函数来实现自定义排序。关键字函数接受列表的每个元素作为参数,并返回一个值用来进行比较。下面是一个示例:

fruits = ['banana', 'apple', 'melon', 'orange']
sorted_fruits = sorted(fruits, key=len)
print(sorted_fruits)

输出结果为:['apple', 'melon', 'banana', 'orange']

在这个示例中,我们定义了一个关键字函数 key=len,它返回每个水果的长度。sorted() 函数会根据水果的长度来进行排序。

4. 对复杂对象进行排序

如果我们需要对复杂对象进行排序,可以通过传递一个关键字函数来定义比较的方式。下面是一个示例:

class Student:
  def __init__(self, name, age, grade):
    self.name = name
    self.age = age
    self.grade = grade

  def __repr__(self):
    return repr((self.name, self.age, self.grade))

students = [
  Student('Tom', 20, 'A'),
  Student('Lisa', 19, 'B'),
  Student('John', 21, 'C')
]

sorted_students = sorted(students, key=lambda student: student.age)
print(sorted_students)

输出结果为:[('Lisa', 19, 'B'), ('Tom', 20, 'A'), ('John', 21, 'C')]

在这个示例中,我们定义了一个关键字函数 key=lambda student: student.age,它返回每个学生的年龄。sorted() 函数会根据学生的年龄来进行排序。

以上就是使用 sorted() 函数对列表进行排序的方法。通过传递不同的参数,我们可以实现升序排序、降序排序以及自定义排序等功能。当我们需要对列表进行排序时,sorted() 函数是一个非常有用的工具。