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

Python中的sorted()函数:排序并返回列表

发布时间:2023-11-01 02:16:39

在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()方法。