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

Python中的sorted()函数是什么?

发布时间:2023-06-23 07:37:07

在Python中,sorted()函数是一种非常强大的函数,它可以对不同类型的序列进行排序,例如列表、元组、集合和字典等。sorted()函数可以对序列进行升序排序或降序排序,并且可以对列表和元组进行自定义排序。此外,sorted()函数还允许我们使用函数、lambda表达式和关键字参数来控制排序过程。

在Python中,sorted()函数的基本语法如下:

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

其中:

- iterable:待排序的序列,可以是列表、元组、集合或字典等。

- key:排序关键字,用于指定排序时应用的自定义函数或lambda表达式。默认值为None,表示直接比较序列中的元素。

- reverse:排序顺序标志,为True表示按降序排序,为False表示按升序排序。默认为False。

下面我们将介绍sorted()函数的常见用法和示例。

## 1. 对列表进行排序

我们可以使用sorted()函数对列表进行排序,例如:

a = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
b = sorted(a)
print(b)  # [1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]

上述代码中,我们使用了sorted()函数将列表a进行升序排序,并将结果赋值给列表b。

我们也可以使用reverse参数来指定排序顺序,例如:

a = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
b = sorted(a, reverse=True)
print(b)  # [9, 6, 5, 5, 5, 4, 3, 3, 2, 1, 1]

上述代码中,我们使用了sorted()函数将列表a进行降序排序。

## 2. 对元组进行排序

元组和列表类似,也可以使用sorted()函数进行排序,例如:

a = (3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5)
b = sorted(a)
print(b)  # [1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]

上述代码中,我们使用了sorted()函数将元组a进行升序排序。

## 3. 对集合进行排序

集合是Python中的一种数据类型,它可以自动去重并对元素进行排序。但是,当我们需要对集合进行自定义排序时,可以使用sorted()函数,例如:

a = {3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5}
b = sorted(a)
print(b)  # [1, 2, 3, 4, 5, 6, 9]

上述代码中,我们使用了sorted()函数将集合a进行升序排序,并将结果转换为列表。

## 4. 对字典进行排序

字典是Python中的一种数据类型,它由键值对组成。当我们需要根据键或值对字典进行排序时,可以使用sorted()函数和lambda表达式,例如:

a = {'c': 3, 'a': 1, 'b': 2, 'f': 6, 'e': 5, 'd': 4}
b = sorted(a.items(), key=lambda x: x[0])
print(b)  # [('a', 1), ('b', 2), ('c', 3), ('d', 4), ('e', 5), ('f', 6)]

上述代码中,我们使用了sorted()函数和lambda表达式,按键对字典a进行升序排序,并将结果转换为列表。

我们也可以按值对字典进行排序,例如:

a = {'c': 3, 'a': 1, 'b': 2, 'f': 6, 'e': 5, 'd': 4}
b = sorted(a.items(), key=lambda x: x[1])
print(b)  # [('a', 1), ('b', 2), ('c', 3), ('d', 4), ('e', 5), ('f', 6)]

上述代码中,我们使用了sorted()函数和lambda表达式,按值对字典a进行升序排序,并将结果转换为列表。

## 5. 自定义排序

我们可以在sorted()函数中使用自定义函数或lambda表达式来控制排序过程,例如:

a = [{'name': 'Tom', 'age': 25}, {'name': 'Jack', 'age': 18}, {'name': 'Bob', 'age': 32}]
b = sorted(a, key=lambda x: x['age'])
print(b)  # [{'name': 'Jack', 'age': 18}, {'name': 'Tom', 'age': 25}, {'name': 'Bob', 'age': 32}]

上述代码中,我们定义了一个列表a,其中包含多个字典,每个字典表示一个人的信息。我们使用了sorted()函数和lambda表达式,按年龄对人员信息进行升序排序,并将结果保存在列表b中。

## 6. 总结

在Python中,sorted()函数是一种非常强大的函数,它可以对不同类型的序列进行排序,并且支持自定义排序。除了常规的升序和降序排序,我们还可以按自定义函数或lambda表达式进行排序,这使得sorted()函数的应用范围更加广泛。在使用sorted()函数时,我们应该注意到其返回的结果是一个新的序列,而不是就地修改原序列。