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

Python中的sorted()函数:使用示例以及如何自定义排序规则

发布时间:2023-07-03 06:48:43

Python的内置函数sorted()可以用于对可迭代对象进行排序,默认按照元素的大小进行升序排序。它接受一个序列作为参数,并返回一个新的已排序的列表。

下面是sorted()函数的使用示例:

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

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

运行结果:

[1, 2, 3, 5, 8]

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

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

运行结果:

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

可以看到,默认情况下,sorted()函数会按照元素的字母顺序对字符串进行排序。如果需要倒序排序,可以使用reverse参数:

sorted_fruits = sorted(fruits, reverse=True)
print(sorted_fruits)

运行结果:

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

sorted()函数还可以接受一个key参数,用于指定自定义的排序规则。这个参数是一个函数,它会被应用到序列的每个元素上,并返回一个用于排序的键。根据这个键进行排序。

下面是一个使用key参数自定义排序规则的示例:

students = [
    {"name": "Alice", "grade": 80},
    {"name": "Bob", "grade": 90},
    {"name": "Charlie", "grade": 70}
]

sorted_students = sorted(students, key=lambda x: x["grade"])
print(sorted_students)

运行结果:

[{'name': 'Charlie', 'grade': 70}, {'name': 'Alice', 'grade': 80}, {'name': 'Bob', 'grade': 90}]

上面的示例中,我们使用了lambda表达式作为key参数,它返回字典中的"grade"键的值,即每个学生的分数。这样就能按照学生的分数进行排序。

除了lambda表达式,我们还可以定义一个自定义函数来作为key参数,例如:

def get_name(student):
    return student["name"]

sorted_students = sorted(students, key=get_name)
print(sorted_students)

运行结果相同:

[{'name': 'Alice', 'grade': 80}, {'name': 'Bob', 'grade': 90}, {'name': 'Charlie', 'grade': 70}]

总结起来,sorted()函数可以方便地对可迭代对象进行排序,默认按照元素的大小进行升序排序。可以使用reverse参数进行倒序排序,也可以使用key参数指定自定义的排序规则,通过函数或lambda表达式返回用于排序的键。这些功能使得sorted()函数非常灵活和实用。