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

对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()方法是最常用的两种方法。同时,通过指定排序关键字参数,我们可以按照自己的规则对列表进行排序。