对Python中列表进行排序的函数
发布时间:2023-06-21 12:03:25
Python中有几个内置函数和方法可以用于对列表排序。下面将介绍这些函数和方法,以及如何使用它们来对列表进行排序。
1. sorted()函数
sorted()函数是用于对任何可迭代对象进行排序的内置函数,它会返回一个新列表。sorted()函数可以接受两个参数:要排序的可迭代对象和一个排序关键字参数。如果不指定排序关键字,则默认按照元素的大小进行排序。
例1:按元素大小排序
a = [8, 4, 3, 9, 1] sorted_a = sorted(a) print(sorted_a) # [1, 3, 4, 8, 9]
例2:按元素绝对值大小排序
a = [8, -4, 3, -9, 1] sorted_a = sorted(a, key=abs) print(sorted_a) # [1, 3, -4, 8, -9]
2. sort()方法
sort()方法是列表对象的一个方法,用于原地排序列表。sort()方法可以接受一个关键字参数。
例1:按元素大小排序
a = [8, 4, 3, 9, 1] a.sort() print(a) # [1, 3, 4, 8, 9]
例2:按元素绝对值大小排序
a = [8, -4, 3, -9, 1] a.sort(key=abs) print(a) # [1, 3, -4, 8, -9]
3. reversed()函数配合sorted()函数
如果想要降序排列,可以将sorted()函数和reversed()函数结合使用。
例1:按元素大小降序排序
a = [8, 4, 3, 9, 1] sorted_a = list(reversed(sorted(a))) print(sorted_a) # [9, 8, 4, 3, 1]
例2:按元素绝对值大小降序排序
a = [8, -4, 3, -9, 1] sorted_a = list(reversed(sorted(a, key=abs))) print(sorted_a) # [8, -9, -4, 3, 1]
4. sort()方法配合reverse属性
如果想要降序排列,可以将sort()方法和reverse属性结合使用。
例1:按元素大小降序排序
a = [8, 4, 3, 9, 1] a.sort(reverse=True) print(a) # [9, 8, 4, 3, 1]
例2:按元素绝对值大小降序排序
a = [8, -4, 3, -9, 1] a.sort(key=abs, reverse=True) print(a) # [8, -9, -4, 3, 1]
5. key参数的使用
除了上面提到的按元素大小和按元素绝对值大小排序,还可以通过key参数来指定排序的规则。
例1:按子字符串的长度排序
a = ['apple', 'banana', 'cherry', 'date'] sorted_a = sorted(a, key=len) print(sorted_a) # ['date', 'apple', 'cherry', 'banana']
例2:按字典中value的值排序
a = {'apple': 3, 'banana': 2, 'cherry': 4, 'date': 1}
sorted_a = sorted(a.items(), key=lambda x: x[1])
print(sorted_a) # [('date', 1), ('banana', 2), ('apple', 3), ('cherry', 4)]
总结
Python中有多种方法可以对列表进行排序,其中sorted()函数和sort()方法是最常用的两种方法。同时,通过指定排序关键字参数,我们可以按照自己的规则对列表进行排序。
