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

Python函数:如何使用内置函数sorted()对序列进行排序?

发布时间:2023-06-15 22:47:28

内置函数sorted()是Python中最常用的函数之一,用于对序列进行排序。这个函数可以接受任何可迭代对象,包括列表、元组、集合、字典等等。使用sorted()函数,可以实现升序排列和降序排列两种方式。下面就来详细介绍一下sorted()函数的使用方法。

1. 升序排列

可以通过传递一个可迭代的对象作为参数来使用sorted()函数。例如,下面的代码使用sorted()函数对一个列表进行升序排列:

numbers = [3, 2, 1, 4, 6, 5]
sorted_numbers = sorted(numbers)
print(sorted_numbers)

运行结果为:[1, 2, 3, 4, 5, 6]。

2. 降序排列

可以给sorted()函数传递一个关键字参数reverse=True,以实现对可迭代对象的降序排列。例如,下面的代码使用sorted()函数对一个元组进行降序排列:

alphabet = ('a', 'c', 'b', 'd', 'e')
sorted_alphabet = sorted(alphabet, reverse=True)
print(sorted_alphabet)

运行结果为:['e', 'd', 'c', 'b', 'a']。

3. 对字典进行排序

由于字典是由键和值组成的,直接使用sorted()函数对字典进行排序是不可行的。但是,可以通过先将字典转换为列表,再对列表进行排序,最后再将排序后的列表转换回字典,来实现对字典的排序。

例如,下面的代码使用sorted()函数对一个字典进行排序:

fruits = {'banana': 3, 'apple': 2, 'kiwi': 4, 'peach': 1}
sorted_fruits = dict(sorted(fruits.items(), key=lambda item: item[1]))
print(sorted_fruits)

运行结果为:{'peach': 1, 'apple': 2, 'banana': 3, 'kiwi': 4}。

4. 自定义排序规则

除了可以使用 sorted() 函数的 reverse 和 key 参数对可迭代对象进行排序,还可以用 cmp 自定义排序规则。

cmp 接受两个参数,返回 1、-1、0 来告诉 sorted() 在两个元素之间如何排序。

cmp 的示例用法如下:

def cmp(a, b):
    if a % 2 == 0 and b % 2 == 1:
        return 1
    elif a % 2 == 1 and b % 2 == 0:
        return -1
    else:
        return 0

numbers = [3, 2, 1, 4, 6, 5]
sorted_numbers = sorted(numbers, cmp=cmp)
print(sorted_numbers)

运行结果为:[1, 3, 5, 2, 4, 6]。

总结:

在Python中,内置函数sorted()是非常常用的一个函数,可以对任何可迭代对象进行升序或降序排列。除此之外,还可以对字典进行排序,并且还可以自定义排序规则。综上所述,sorted()函数可以帮助我们快速对序列进行排序,是Python开发中不可或缺的函数之一。