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

Python内置函数之sorted()的用法

发布时间:2023-05-27 06:43:23

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()函数只在内存中进行排序,因此如果需要排序非常大的数据集,则可能需要更高效的排序算法。