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

Python中的sorted函数及其实践

发布时间:2023-05-20 21:05:47

在Python中,sorted是一种内置函数,用于对列表、元组、字典等可迭代对象进行排序。sorted函数会返回一个新的排好序的列表,原列表不会被修改。sorted函数的基本语法如下:

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

其中,iterable是待排序的可迭代对象,例如列表、元组、字典等;key是一个函数,用于指定排序的关键字,例如可以按照字符串的长度、数字的大小等进行排序;reverse表示排序顺序,True表示降序,False表示升序。如果不指定key和reverse,则默认按照元素的大小进行升序排序。

接下来,我们来看一些sorted函数的实践案例。

1. 对列表进行排序

假设有一个包含多个整数的列表,我们想要对这些整数进行排序。可以使用sorted函数来实现:

> a = [3, 1, 4, 2, 5]

> b = sorted(a)

> print(b)

上述代码中,首先定义了一个列表a,然后使用sorted函数对其进行排序,得到新的列表b。输出结果为[1, 2, 3, 4, 5],说明排序成功。

2. 对元组进行排序

元组是一种不可变的序列,可以使用sorted函数对其进行排序。例如,我们有一个包含多个元素的元组,每个元素包含一个字符串和一个整数,我们想要按照整数的大小对元组进行排序。

> a = [('apple', 3), ('banana', 2), ('cherry', 4), ('dragonfruit', 1)]

> b = sorted(a, key=lambda x: x[1])

> print(b)

在上述代码中,首先定义了一个元组a,然后使用sorted函数对其进行排序,按照元组中的第二个元素(即整数)进行排序,得到新的元组b。输出结果为[('dragonfruit', 1), ('banana', 2), ('apple', 3), ('cherry', 4)],说明排序成功。

3. 对字典进行排序

字典是一种无序的键值对集合,可以使用sorted函数按照键或者值对字典进行排序。例如,我们有一个包含多个键值对的字典,我们想要按照键的大小对字典进行排序。

> a = {'apple': 3, 'banana': 2, 'cherry': 4, 'dragonfruit': 1}

> b = sorted(a.items(), key=lambda x: x[0])

> print(b)

在上述代码中,首先定义了一个字典a,然后使用a.items()获取到字典中的键值对列表,并使用sorted函数按照键的大小进行排序,得到新的列表b。输出结果为[('apple', 3), ('banana', 2), ('cherry', 4), ('dragonfruit', 1)],说明排序成功。

4. 对自定义对象进行排序

如果我们有一个自定义的对象,想要按照某个属性进行排序,可以使用sorted函数,并结合属性访问器进行排序。例如,我们有一个Person类,包含名字和年龄两个属性,我们想要按照年龄对Person对象进行排序。

> class Person:

>     def __init__(self, name, age):

>         self.name = name

>         self.age = age

> a = [Person('Alice', 25), Person('Bob', 18), Person('Charlie', 30)]

> b = sorted(a, key=lambda x: x.age)

> for person in b:

>     print(person.name, person.age)

在上述代码中,首先定义了一个Person类,然后定义了一个包含多个Person对象的列表a,使用sorted函数按照Person对象的age属性进行排序,得到新的列表b。最后使用for循环输出新列表中的Person对象的name和age属性。

以上是sorted函数的一些应用实例,以及对不同类型对象的排序方法。在开发中,有许多其他的排序工具如NumPy和Pandas,可以快速地进行多种不同类型的排序操作,以满足各种需求。