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

Python中列表排序函数详解

发布时间:2023-06-09 23:33:05

Python中提供了多种方法对列表进行排序。本文将对Python中的列表排序函数进行详细介绍,帮助读者对Python中的列表排序有更深入的了解。

1、list.sort()函数

list.sort()函数是Python中对列表排序最常用的函数之一,可以对列表进行升序排序,也可以对列表进行降序排序。该函数直接对原列表进行排序,不会返回一个新的排序后的列表。

1.1升序排序

list.sort()函数默认是升序排序,排序后的列表将从小到大排列。

例如:

a = [3,2,1,5,4]
a.sort()
print(a)

输出结果:

[1, 2, 3, 4, 5]

1.2降序排序

如果需要进行降序排序,只需要在sort()函数中传递reverse=True参数即可。

例如:

a = [3,2,1,5,4]
a.sort(reverse=True)
print(a)

输出结果:

[5, 4, 3, 2, 1]

2、sorted()函数

sorted()函数可以返回一个新的排序后的列表,不会修改原来的列表。sorted()函数可以对列表进行升序排序,也可以进行降序排序。

2.1升序排序

对于升序排序,只需直接调用函数sorted()即可。

例如:

a = [3,2,1,5,4]
b = sorted(a)
print(b)
print(a)

输出结果:

[1, 2, 3, 4, 5]
[3, 2, 1, 5, 4]

2.2降序排序

如果需要进行降序排序,只需要传递reverse=True参数即可。

例如:

a = [3,2,1,5,4]
b = sorted(a, reverse=True)
print(b)
print(a)

输出结果:

[5, 4, 3, 2, 1]
[3, 2, 1, 5, 4]

3、sort与sorted函数中的key参数

3.1使用sort函数进行自定义排序

以上两个函数都可以使用key参数来指定一个函数,用来指定排序依据。如果没有指定,sort函数将默认按照列表元素的大小进行排序。

例如:

a = ['abc', 'bc', 'a', 'abcd']
a.sort()
print(a)

输出结果:

['a', 'abc', 'abcd', 'bc']

可以看到,sort函数将按照字符串大小进行排序,这并不是我们想要的结果。

一个常见的解决方法是给sort函数传递一个函数作为它的key参数。这个函数将针对列表中每个元素进行一遍计算,并返回需要排序的标准,sort函数根据这些标准进行排序。比如我们可以按字符串长度进行排序:

a = ['abc', 'bc', 'a', 'abcd']
a.sort(key=lambda x: len(x))
print(a)

输出结果:

['a', 'bc', 'abc', 'abcd']

3.2使用sorted函数进行自定义排序

sorted函数同样可以使用key参数来指定一个函数来作为它的排序标准,与sort()函数不同的是,sorted函数将返回一个新的排序后的列表。

例如:

a = ['abc', 'bc', 'a', 'abcd']
b = sorted(a, key=lambda x: len(x))
print(b)
print(a)

输出结果:

['a', 'bc', 'abc', 'abcd']
['abc', 'bc', 'a', 'abcd']

可以看到,sorted函数返回一个新的排序后的列表,原来的列表并没有被修改。

4、小结

Python中的列表排序函数包括sort和sorted函数,两个函数都可以对列表进行排序。sort函数是直接对列表进行排序,不会返回一个新的排序后的列表。sorted函数会返回一个新的排序后的列表,原列表不会被修改。使用key参数可以进行自定义排序,根据指定的函数进行排序。熟练掌握列表排序函数可以让我们更轻松地处理列表中的数据。