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

Python中的Sorted()函数:用于对序列进行排序。

发布时间:2023-06-09 14:13:55

Python的Sorted()函数是一种非常常用的函数,用于对序列进行排序。Sorted()函数是在Python内建函数中比较方便的一个,可以对列表、元组、字符串等数据类型进行排序。虽然在数据量较小的情况下,排序算法表现得似乎差不多,但是在数据量比较大的情况下,不同的排序算法的时间复杂度差别非常大,这时候使用Sorted()可以大大提高程序效率。

一、基本语法

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

参数解释:

iterable :待排序的序列,可以是列表、也可以是元组或者其他可迭代的对象。

key:排序规则,可以没有,也可以是一个函数或者lambda函数。如果指定key,那么就会使用指定的函数进行排序;如果没有指定,就默认使用元素的大小进行排序。

reverse:排序规则,reverse=True则表示降序,reverse=False默认为升序排序。

二、Sorted()排序示例

1.按照元素大小进行排序

a=[4,6,2,7,4,9,0,1,10]

b=sorted(a)

print('a:',a)

print('b:',b)

结果:

a:[4, 6, 2, 7, 4, 9, 0, 1, 10]

b:[0, 1, 2, 4, 4, 6, 7, 9, 10]

2.按照长度进行排序

a=['an','the','i','are','of','is','a','to']

b=sorted(a,key=lambda x:len(x))

print('a:',a)

print('b:',b)

结果:

a:['an', 'the', 'i', 'are', 'of', 'is', 'a', 'to']

b:['i', 'a', 'to', 'of', 'is', 'an', 'the', 'are']

3.按照首字母进行排序

a=['an','the','i','are','of','is','a','to']

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

print('a:',a)

print('b:',b)

结果:

a:['an', 'the', 'i', 'are', 'of', 'is', 'a', 'to']

b:['a', 'an', 'are', 'i', 'is', 'of', 'the', 'to']

4.按照字典序进行排序

a=['beijing','shanghai','guangzhou','xian','hangzhou']

b=sorted(a)

print('a:',a)

print('b:',b)

结果:

a:['beijing', 'shanghai', 'guangzhou', 'xian', 'hangzhou']

b:['beijing', 'guangzhou', 'hangzhou', 'shanghai', 'xian']

5.按照字典序长度进行排序

a=['beijing','shanghai','guangzhou','xian','hangzhou']

b=sorted(a,key=lambda x:(len(x),x))

print('a:',a)

print('b:',b)

结果:

a:['beijing', 'shanghai', 'guangzhou', 'xian', 'hangzhou']

b:['xian', 'beijing', 'hangzhou', 'guangzhou', 'shanghai']

三、Sorted()函数注意事项

1.因为Sorted返回的是新的排序对象,如果将Sorted函数对列表a排序,那么原列表a并没有被改变,需要将排序结果赋值给a才能改变原列表。

2.如果指定了key,Sorted排序时会按照key函数的返回值排序,所以key函数需要返回一个可以用来比较的对象。

3.如果key返回值是多个数据的元组,Sorted将会按照元组内的元素顺序进行排序。

4.Sorted()函数的默认排序是升序排列,如果需要降序排列,需要将reverse参数设置为True。

总之,Python中的Sorted()函数非常方便,不论是对数字、字符串,还是其他数据类型进行排序,Sorted()都可以帮助我们快速做好排序。若是应用的也不对,还是有可能会产生不必要的问题,所以我们还是需要在使用的过程中,认真理解每个参数的作用。