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

Python中的sorted()函数:对列表进行排序,并返回新的列表

发布时间:2023-12-08 02:09:31

Python中的sorted()函数是一个内置函数,用于对列表进行排序,并返回一个新的已排序列表。sorted()函数可以接受一个可迭代对象作为参数,包括列表、元组、字符串等。

sorted()函数的语法如下:

sorted(iterable, key=None, reverse=False)

其中,iterable是要排序的可迭代对象,key是一个可选参数,用于指定一个函数来生成排序的关键字,reverse是一个可选参数,用于控制是否降序排列,默认为升序排列。

下面将详细介绍sorted()函数的使用方法和示例。

1. 对列表进行排序

首先,我们可以直接将要排序的列表作为sorted()函数的参数,调用sorted()函数并将返回的新列表赋值给一个变量。

示例代码如下:

numbers = [5, 2, 3, 1, 4]

sorted_numbers = sorted(numbers)

print(sorted_numbers)

输出结果为:[1, 2, 3, 4, 5]

可以看到,原列表numbers中的元素以升序排列(从小到大),排序结果保存在sorted_numbers中。

2. 对元组进行排序

sorted()函数不仅可以对列表进行排序,也可以对元组进行排序。

示例代码如下:

numbers = (5, 2, 3, 1, 4)

sorted_numbers = sorted(numbers)

print(sorted_numbers)

输出结果为:[1, 2, 3, 4, 5]

可以看到,元组numbers中的元素也以升序排列。

3. 使用key参数自定义排序规则

如果要根据列表中元素的某个属性进行排序,可以使用key参数来指定一个函数来生成排序的关键字。

示例代码如下:

students = [

    {"name": "John", "age": 20},

    {"name": "Jane", "age": 18},

    {"name": "Chris", "age": 22}

]

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

print(sorted_students)

输出结果为:

[{'name': 'Jane', 'age': 18}, {'name': 'John', 'age': 20}, {'name': 'Chris', 'age': 22}]

可以看到,按照学生列表中每个字典的age属性进行升序排序后,Jane(18岁)排在了最前面,Chris(22岁)排在了最后面。

4. 使用reverse参数进行降序排序

同时还可以通过将reverse参数设置为True来进行降序排序。

示例代码如下:

numbers = [5, 2, 3, 1, 4]

sorted_numbers = sorted(numbers, reverse=True)

print(sorted_numbers)

输出结果为:[5, 4, 3, 2, 1]

可以看到,原列表numbers中的元素以降序排列(从大到小)。

综上所述,sorted()函数是一个非常有用的函数,可以对列表进行排序并返回一个新的列表。通过key参数可以自定义排序规则,通过reverse参数可以进行降序排序。在实际开发中,sorted()函数经常被用于排序需求。