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

学习Python中的sorted函数及其用法

发布时间:2023-05-21 04:36:45

Python的sorted函数是一个非常重要的内置函数,它可以对任何可迭代的对象进行排序。sorted函数的使用方法非常简单,我们只需要使用sorted函数对需要进行排序的对象进行调用,然后按照需要的规则进行排序,最后得到一个新的有序的对象。

这里我们介绍下sorted函数的具体用法和一些常见应用场景。

一、sorted函数的基本用法

使用sorted函数只需要输入待排序对象,然后将排序的规则写入key参数中,这时候 sorted 函数会返回一个新的有序序列。下面是 sorted 函数的基本用法:

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

- iterable:需要排序的序列、元组或列表等可迭代对象。

- key:排序规则,可以是函数或 lambda 表达式等。

- reverse:排序方向,默认为 False,表示升序排列;为 True 则表示降序排列。

下面是 sorted 函数的一个简单示例:

a = [3, 1, 4, 2]
print(sorted(a))

输出为【1,2,3,4】

二、按字典顺序排序

我们可以使用 key 函数来指定按某种字典顺序排序。比如,我们想按照字符串的长度来排序:

a = ['ccc', 'bbbb', 'a', 'dd']
print(sorted(a, key=len))

这里我们指定按照字符串长度升序排序:

输出为【a, dd, ccc, bbbb】

如果我们想按照字符串长度降序排序:

a = ['ccc', 'bbbb', 'a', 'dd']
print(sorted(a, key=len, reverse=True))

三、按指定属性排序

我们可以使用 lambda 表达式来指定按照对象中的某个属性排序。比如一个含有多个人员信息的列表:

people = [{'name': 'Tom', 'age': 30}, {'name': 'Jerry', 'age': 25}, {'name': 'Lucy', 'age': 20},{'name': 'Ben', 'age': 30}]

如果我们想按照年龄和姓名进行排序:

print(sorted(people, key=lambda x: (x['age'], x['name'])))

这里我们使用 lambda 表达式指定按照 age 和 name 排序,并将它们封装到元组中。

四、在二元组或元组列表中按照第二个元素(key)进行排序

我们可以使用 sorted 函数将二元组或元组列表中按照第二个元素进行排序。比如:

lst = [(1, 2), (3, 4), (4, 3), (2, 1)]
print(sorted(lst, key=lambda x: x[1]))

输出为【(2, 1), (1, 2), (4, 3), (3, 4)】。sorted 函数会按照第二个元素的大小进行排序。

五、总结

本文介绍了 sorted 函数的用法和一些常见应用场景。sorted 函数是 Python 中非常常用的排序函数之一,掌握它的使用方法可以大量提升 Python 编程效率。当然 sorted 函数还有其他用法,可以进一步钻研。