如何使用 sorted() 函数对列表排序
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() 函数是一个非常有用的工具。
