学习Python中的sorted函数及其用法
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 函数还有其他用法,可以进一步钻研。
