Python中的sorted()函数:对列表进行排序,并返回新的列表
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()函数经常被用于排序需求。
