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

使用Python的sorted函数进行列表排序:详细指南

发布时间:2023-05-30 21:50:14

Python中的sorted函数是对列表进行排序的一种常见方式。它可以按照升序或降序进行排序,并且可以基于元素中的特定属性排序。

sorted函数的语法如下:

sorted(iterable, key=None, reverse=False)

其中,iterable是要排序的对象,可以是列表、元组等;key是一个函数,用于指定排序的规则;reverse为True时表示降序排序,为False时表示升序排序,默认为False。

下面详细介绍sorted函数的使用。

1. 对数字列表进行排序

我们首先来看一个简单的例子,对一个数字列表进行排序:

numbers = [10, 5, 8, 3, 2]
sorted_numbers = sorted(numbers)
print(sorted_numbers)

输出结果为:

[2, 3, 5, 8, 10]

可以看到,sorted函数按照升序对数字列表进行了排序。

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

除了数字列表,我们还可以对字符串列表进行排序。例如:

fruits = ["apple", "banana", "orange", "cherry"]
sorted_fruits = sorted(fruits)
print(sorted_fruits)

输出结果为:

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

可以看到,sorted函数按照字母顺序对字符串列表进行了排序。

3. 对元组进行排序

除了列表,我们还可以对元组进行排序。例如:

points = [(1, 2), (3, 4), (2, 5), (1, 3)]
sorted_points = sorted(points)
print(sorted_points)

输出结果为:

[(1, 2), (1, 3), (2, 5), (3, 4)]

可以看到,sorted函数按照元组的 个元素进行排序,如果 个元素相同,则按照第二个元素进行排序。

4. 基于元素中的某个属性排序

有时候,我们需要按照元素中的某个属性进行排序。例如,我们有一个包含学生信息的列表,每个学生信息包括姓名、年龄和分数。我们想要按照分数进行排序。可以使用sorted函数的key参数来实现。

首先,定义一个列表包含学生信息:

students = [
    {'name': 'Tom', 'age': 18, 'score': 90},
    {'name': 'Lucy', 'age': 17, 'score': 95},
    {'name': 'Bob', 'age': 20, 'score': 85},
    {'name': 'Alice', 'age': 19, 'score': 92}
]

然后,编写一个函数,用于指定排序的规则(按照分数进行排序):

def get_score(student):
    return student['score']

最后,调用sorted函数进行排序:

sorted_students = sorted(students, key=get_score, reverse=True)
print(sorted_students)

输出结果为:

[{'name': 'Lucy', 'age': 17, 'score': 95},
 {'name': 'Alice', 'age': 19, 'score': 92},
 {'name': 'Tom', 'age': 18, 'score': 90},
 {'name': 'Bob', 'age': 20, 'score': 85}]

这里,我们使用了reverse=True来指定降序排序。

在key参数中,我们传递了get_score函数,该函数返回元素中的score属性,这样,sorted函数会按照学生分数进行排序。

到此,我们介绍了sorted函数的基本使用方法,希望对大家有所帮助。