如何使用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()函数按指定关键字或函数对列表进行排序的常见方法。你可以根据具体需求选择适合的方式来排序列表。
