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

Python内置函数sorted()的使用及其用途

发布时间:2023-06-09 11:47:26

Python是一种高级编程语言,具有许多方便的特性和函数。其中一种最常用的函数是sorted()。sorted() 是Python内置的函数,用于对列表、字符串、元组等可迭代对象进行排序操作。

Python内置函数sorted()的基本使用方法是:sorted(iterable, *, key=None, reverse=False)。其中,iterable是需要进行排序的可迭代对象,如列表、字符串、元组等;key是一个可选参数,表示将iterable中的每一个元素传入函数进行排序时所依据的关键字;reverse也是一个可选参数,表示排序时是否按照降序排列。默认为升序排序。

举个例子,比如我们要对一个列表 [5, 2, 1, 3, 4] 进行排序,可以使用如下代码:

nums = [5, 2, 1, 3, 4]
sorted_nums = sorted(nums) 

这段代码将原列表nums排序后生成了一个新的有序列表sorted_nums,sorted_nums的值为 [1, 2, 3, 4, 5]。如果要按照从大到小的降序排列,则在函数调用时指定reverse=True即可。

sorted() 函数可以方便地对任意类型的可迭代对象进行排序。

除了简单的排序之外,sorted() 函数还可用于根据字典的值对字典进行排序。我们可以在函数调用时利用key参数,将一个函数作为参数传递给sorted(),告诉函数按照什么规则排序。比如要对一个字典按照键值从小到大进行排序,可以使用如下代码:

d = {'a': 3, 'b': 1, 'c': 2}
sorted_d = sorted(d.items(), key=lambda x: x[1]) 

这段代码将字典d转换成了元组的列表,然后根据第二个元素(值)进行排序,生成sorted_d列表的值为:

[('b', 1), ('c', 2), ('a', 3)]

可以看到,sorted() 除了对数字进行排序外,在处理字符串、元组和字典等数据结构时也非常有用。

当列表中的元素是对象时,可以通过sorted() 函数的 key 参数指定某个属性来进行排序。下面是一个示例:

class Employee:
    def __init__(self, name, age, salary):
        self.name = name
        self.age = age
        self.salary = salary
    def __repr__(self):
        return ''.format(self.name, self.age, self.salary)

e1 = Employee("John", 30, 5000)
e2 = Employee("Alice", 25, 4000)
e3 = Employee("Bob", 45, 7000)

employees = [e1, e2, e3]

sorted_employees = sorted(employees, key=lambda x: x.salary)

这段代码先定义了一个Employee类,然后创建了三个Employee对象。最后将这三个对象放到一个列表employees中,并调用sorted()函数对这个列表进行排序。sorted()函数的 key 参数指定以Employee对象的salary属性进行排序。

以上是Python内置函数sorted()的基本使用方法和一些常用场景,由于它的灵活多样,可以用于非常多的排序需求,在实际开发过程中有时候也可以用sorted()优化一,从而实现更高效的代码。