Python内置函数之sorted()的用法
Python是一种强大而广泛应用的编程语言,具有广泛的用途和人口基础。在Python中,许多内置函数都是使用的常见的工具,以便可以轻松地处理代码。其中一个非常有用的内置函数是sorted(),它可以将一个集合按照定义的规则进行排序,从而非常方便地排序数据或进行某些分析。
sorted()函数的基本语法
sorted()函数可以对列表和元组进行排序,并返回一个新的已排序的列表或元组。函数的基本语法如下:
sorted(iterable[, key][, reverse])
其中,iterable参数是需要排序的数据,可以是一个列表或元组;key参数是排序的关键字,可以根据自定义的规则进行排序;reverse参数是一个布尔值,默认为False,表示升序排序,如果为True则表示降序排序。
示例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]
示例2:使用sorted()函数对元组进行降序排序
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]
示例3:使用sorted()函数对列表中字典进行排序
a = [{"name": "Tom", "age": 24}, {"name": "Jack", "age": 26}, {"name": "Mary", "age": 22}]
b = sorted(a, key=lambda x: x['age'])
print(b)
输出结果:
[{'name': 'Mary', 'age': 22}, {'name': 'Tom', 'age': 24}, {'name': 'Jack', 'age': 26}]
sorted()函数的常用参数
除了基本语法之外,sorted()函数还有一些常用的参数可供选择:
1. key参数
key参数在排序时非常有用。它通常是一个函数,用于从每个元素中提取用于比较的关键字。默认情况下,sorted()函数将使用元素本身进行排序。但是,如果您有一些特定的选项需要根据不同的规则进行排序,则可以使用key参数。
示例如前面示例3。
2. reverse参数
reverse参数是控制排序方向的布尔变量,如果reverse参数设置为True,则按降序排序,默认情况下按升序排序。
示例如前面示例2。
3. cmp参数
尽管cmp参数在旧版本(Python 2)中非常有用,但在Python 3中已被弃用,因为key参数是所有情况下的替代方案。cmp参数是一个用于比较元素的函数,它接受两个参数,并且返回一个负数、零或正数,以通知sorted()函数哪个元素是较小的。
示例:
def compare(x, y):
if x < y:
return -1
elif x > y:
return 1
else:
return 0
a = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
b = sorted(a, cmp=compare)
print(b)
输出结果:
[1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]
sorted()函数的返回值
sorted()函数的返回值是一个已排序的列表或元组。
总结
通过sorted()函数,我们可以轻松地对Python中的列表和元组进行排序,并且可以根据自定义的规则进行排序。在数据分析、分类、筛选中,这个函数是非常实用的。如果要对Python中的字典或其他类型进行排序,则可以使用相应类型的sorted()函数或其他方法。最后需要提醒的是,sorted()函数只在内存中进行排序,因此如果需要排序非常大的数据集,则可能需要更高效的排序算法。
