Python sorted()函数:排序列表的使用方法
Python sorted()函数是对列表进行排序的内置函数,可以按照升序或降序排列列表中的元素。本文将介绍使用Python sorted()函数排序列表的方法。
sorted()函数的语法如下:
sorted(iterable, key=None, reverse=False)
其中,参数iterable是需要排序的列表,参数key是排序规则,reverse是一个Boolean值,表示排序方式是升序还是降序。
1. 升序排序
按照默认排序规则,即升序排序,使用sorted()函数的方式如下:
x = [10, 2, 4, 1, 5] y = sorted(x) print(y)
输出结果为:[1, 2, 4, 5, 10]
2. 降序排序
要按照降序排序,只需要将参数reverse设置为True,即:
x = [10, 2, 4, 1, 5] y = sorted(x, reverse=True) print(y)
输出结果为:[10, 5, 4, 2, 1]
3. 自定义排序规则
如果不使用默认排序规则,可以自定义排序规则。例如,按照字符串长度进行排序,可以使用len()函数作为key参数,如下所示:
x = ['apple', 'banana', 'cherry', 'durian'] y = sorted(x, key=len) print(y)
输出结果为:['apple', 'cherry', 'banana', 'durian']
如果要按照字符串的最后一个字母进行排序,可以自定义一个函数作为key参数,如下所示:
def last_character(string):
return string[-1]
x = ['apple', 'banana', 'cherry', 'durian']
y = sorted(x, key=last_character)
print(y)
输出结果为:['banana', 'apple', 'cherry', 'durian']
4. 对元组进行排序
如果要对元组进行排序,可以按照元组中的某一个元素进行排序,例如按照元组的第二个元素进行排序,可以自定义一个函数作为key参数,如下所示:
x = [(2, 'b'), (1, 'a'), (3, 'c')] y = sorted(x, key=lambda t: t[1]) print(y)
输出结果为:[(1, 'a'), (2, 'b'), (3, 'c')]
5. 其他类型的列表排序
除了基本类型的列表外,还可以对任何类型的列表进行排序。例如,对一个学生列表按照姓名和年龄进行排序,可以自定义一个函数作为key参数,如下所示:
students = [
{'name': 'John', 'age': 20},
{'name': 'Alice', 'age': 22},
{'name': 'Bob', 'age': 19}
]
y = sorted(students, key=lambda s: (s['name'], s['age']))
print(y)
输出结果为:[{'name': 'Alice', 'age': 22}, {'name': 'Bob', 'age': 19}, {'name': 'John', 'age': 20}]
综上,Python sorted()函数可用于对各种类型的列表进行排序,无论是基本类型还是自定义类型。可以根据实际需求选择排序方式和排序规则。
