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

sort()函数排序集合元素?

发布时间:2023-06-18 15:41:00

sort()函数是一种可用来在Python集合中排序元素的函数。Python中的集合可以是列表、元组、字典和集合。sort()函数可以用于排序列表、元组和集合,但无法用于排序字典。sort()函数可以对任何包含可比较元素的集合进行排序,包括数字、字母和字符串。以下是sort()函数的详细介绍。

sort()函数语法:

sort()函数是一个列表、元组和集合对象的成员函数。语法如下:

obj.sort([reverse=True|False],[key=函数名|lambda函数], [cmp=函数名])

其中:

· reverse:排序规则,reverse = True 降序,reverse = False 升序(默认)。

· key:其中的函数可以自定义排序规则。可以是一个函数或 lambda 函数。函数的结果将应用于列表中的每个元素,以排序的目的。

· cmp:用于比较的函数,用于比较两个元素。如果指定了 cmp,则不使用 key。

sort()函数进行升序排序:

sort()函数默认的排序方式是升序排序,当reverse参数不写或者写为False时,就会按照升序排序。以下是一个简单的例子展示了sort()函数进行升序排序的方法:

list_1=[4,8,2,6,1]

list_1.sort()

print(list_1)

运行上述代码,将会先输出[1,2,4,6,8],证明已经进行了升序排列。

sort()函数进行降序排序:

当reverse参数为True时,sort()函数将按照降序排序。以下是一个简单的例子来展示sort()函数进行降序排序: 

list_2=[4,8,2,6,1]

list_2.sort(reverse=True)

print(list_2)

运行上述代码,将会先输出[8,6,4,2,1],证明已经按照降序排列。

sort()函数使用key参数自定义排序:

使用key参数我们可以自定义集合中元素的排序规则。如下例子中,我们定义了一个函数keyfunc(),用于对集合中元素进行排序:

def keyfunc(s):

    return s.lower()

list_3 = ['Banana','apple','Orange','peach']

list_3.sort(key=keyfunc)

print(list_3)

运行上述代码,将会先输出[‘apple’,’Banana’,’Orange’,’peach’],其中我们定义的keyfunc()函数用于将单词转为小写后进行排序。

sort()函数与lambda函数:

Python中的lambda函数也可以用于对排序规则进行自定义,如下面的这个例子:

list_4 = ['Banana','apple','Orange','peach']

list_4.sort(key=lambda s:s.lower())

print(list_4)

运行上述代码,将会先输出[‘apple’,’Banana’,’Orange’,’peach’],其中我们定义的lambda函数与前面例子中所定义的keyfunc()函数效果相同。

sort()函数与cmp参数(已弃用):

cmp参数被弃用了,但在以前的版本中可以用来设置比较函数,如果要使用比较函数可以使用以下方式,其中lambda函数用于帮助我们设置比较:

list_5 = [4,5,6,1,2,3,8,9,7]

compare = lambda x,y: 1 if x < y else (-1 if x > y else 0)

list_5.sort(cmp=compare)

print(list_5)

运行上述代码,将会先输出[1,2,3,4,5,6,7,8,9],其中我们自定义的compare函数用于比较两个元素。

总结:

sort()函数是Python集合中常用的函数之一,可以用于对列表、元组和集合进行排序。sort()函数的主要参数有reverse、key和cmp,可以帮助我们灵活地控制排序规则。sort()函数对于字符串、数字等可比较的元素都可以做到完美的排序。