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

Python sorted()函数:排序列表的使用方法

发布时间:2023-06-11 06:30:56

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()函数可用于对各种类型的列表进行排序,无论是基本类型还是自定义类型。可以根据实际需求选择排序方式和排序规则。