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

如何使用Python中的sorted()函数按指定的关键字或函数对列表进行排序?

发布时间:2023-08-08 17:10:13

在Python中,可以使用sorted()函数对列表进行排序。sorted()函数接受一个可迭代对象作为参数,并返回一个新的已排序的列表副本。以下是通过指定关键字或函数对列表进行排序的不同方法:

1. 指定关键字排序:

可以使用key参数指定根据哪个关键字进行排序。关键字可以是列表项的某个属性或字典中的某个键。下面是一个示例,按照字典中的age关键字对列表进行排序:

students = [
    {'name': 'John', 'age': 15},
    {'name': 'Emma', 'age': 13},
    {'name': 'Alex', 'age': 12}
]

sorted_students = sorted(students, key=lambda x: x['age'])
print(sorted_students)

输出:

[{'name': 'Alex', 'age': 12}, {'name': 'Emma', 'age': 13}, {'name': 'John', 'age': 15}]

2. 指定函数排序:

除了指定关键字外,还可以使用key参数传递一个函数来对列表进行排序。函数接收列表中的每个元素作为参数,并返回一个用于排序的值。下面是一个示例,按照字符串长度对列表进行排序:

fruits = ['apple', 'banana', 'grapefruit', 'orange']

sorted_fruits = sorted(fruits, key=len)
print(sorted_fruits)

输出:

['apple', 'banana', 'orange', 'grapefruit']

3. 指定逆序排序:

默认情况下,sorted()函数以升序对列表进行排序。如果要进行降序排序,可以使用reverse=True参数。以下是一个示例:

numbers = [5, 2, 8, 1, 9]

sorted_numbers = sorted(numbers, reverse=True)
print(sorted_numbers)

输出:

[9, 8, 5, 2, 1]

4. 原地排序:

sorted()函数返回一个新的已排序列表副本。如果希望在原始列表上进行排序而无需创建副本,可以使用list.sort()方法。该方法会直接修改原始列表。以下是一个示例:

numbers = [5, 2, 8, 1, 9]

numbers.sort()
print(numbers)

输出:

[1, 2, 5, 8, 9]

以上是使用sorted()函数按指定关键字或函数对列表进行排序的常见方法。你可以根据具体需求选择适合的方式来排序列表。