Python中的sorted()函数:排序并返回列表
在Python中,可以使用sorted()函数对列表进行排序,并返回一个新的已排序列表。sorted()函数的语法如下:
sorted(iterable, key=None, reverse=False)
参数说明:
- iterable是要排序的可迭代对象,通常是一个列表或元组。
- key是一个可选的函数,用于指定排序的额外依据。它接受可迭代对象中的每个元素作为输入,并返回一个用于排序的键。例如,如果要按照元素的长度进行排序,可以使用key=len。
- reverse是一个可选的布尔值参数,用于指定是否按降序排列。默认为False,表示按升序排列。
例如,假设有一个列表a = [5, 3, 8, 2, 1],要对其进行升序排列:
sorted_a = sorted(a)
print(sorted_a)
输出:[1, 2, 3, 5, 8]
可以看到,sorted()函数返回了一个新的已排序列表sorted_a,而原列表a保持不变。
如果要对一个列表中的字典按照某个键进行排序,可以使用key参数。假设有一个字典列表student_list,每个字典有两个键值对"name"和"age":
student_list = [
{"name": "Alice", "age": 20},
{"name": "Bob", "age": 18},
{"name": "Charlie", "age": 21}
]
要按照学生的年龄进行升序排序:
sorted_student_list = sorted(student_list, key=lambda x: x["age"])
print(sorted_student_list)
输出:[{'name': 'Bob', 'age': 18}, {'name': 'Alice', 'age': 20}, {'name': 'Charlie', 'age': 21}]
在这个例子中,使用了lambda表达式作为key参数,该表达式接受每个字典作为输入,然后返回字典中"age"键的值作为排序的依据。
如果希望按降序排列,可以将reverse参数设置为True。例如,对列表a进行降序排列:
sorted_a = sorted(a, reverse=True)
print(sorted_a)
输出:[8, 5, 3, 2, 1]
需要注意的是,sorted()函数不会修改原列表,而是返回一个新的已排序列表。如果希望对原列表进行排序,可以使用列表的sort()方法。
