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

Python中的sorted()函数:用于列表排序

发布时间:2023-06-27 06:11:33

Python是一种高级编程语言,在许多应用程序中都得到了广泛的应用。在Python中,sorted函数是一种非常常见的函数,它用于对列表排序。本文将介绍sorted函数的用法和常见用例。

1.语法:

sorted(iterable, key=None, reverse=False)

 参数:

 iterable:可迭代的对象,例如列表、元组或其他可迭代的对象。

 key:可选参数,用于排序的函数。

 reverse:可选参数,用于控制排序顺序是否倒序。

2.用法:

下面是一个简单的示例,演示如何使用sorted函数:

a = [3, 1, 4, 1, 5, 9, 2, 6]

sorted_a = sorted(a)

print(sorted_a)

输出结果:

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

在本例中,我们首先初始化一个包含不同数字的列表A。我们通过调用sorted函数对其进行排序,并将结果存储在sorted_A变量中。最后,我们通过调用print函数来输出排序后的列表。

3.按自定义顺序排序:

有时我们需要按照自己的规则排序元素。例如,对于下面的列表,我们想首先按照字母升序排序,然后按照数字降序排序:

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

定义如下排序函数:

def custom_sort(x):

    return x[0], -x[1]

这个函数根据元素的第一个值升序排序,然后按照元素的第二个值降序排序。我们可以使用sorted函数将此函数作为关键字参数传递:

sorted_a = sorted(a, key=custom_sort)

print(sorted_a)

输出结果:

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

在本例中,我们将custom_sort函数作为关键字参数传递给sorted函数。sorted函数将使用此函数对传递给它的元素进行排序。

4.按特定属性排序:

在实际应用中,我们经常需要根据某个对象属性对对象的列表进行排序。假设我们有一个包含Person类对象的列表:

class Person:

    def __init__(self, name, age):

        self.name = name

        self.age = age

people = [Person('John', 25), Person('Bob', 10), Person('Kate', 30)]

我们可以使用lambda函数来根据对象的属性进行排序:

sorted_people = sorted(people, key=lambda x: x.age)

输出结果:

[<__main__.Person object at 0x7fced4a40df0>, <__main__.Person object at 0x7fced4a40d60>, <__main__.Person object at 0x7fced4a40d30>]

这个结果并不是我们期望的,因为它只显示了每个Person对象的地址。让我们打印每个对象的名称和年龄:

for p in sorted_people:

    print(p.name, p.age)

输出结果:

Bob 10

John 25

Kate 30

在本例中,我们使用lambda函数根据人的年龄对列表进行排序。我们将lambda函数作为关键字参数传递给sorted函数。

Conclusion:

Python的sorted函数是一种非常常见的函数,用于按照我们指定的条件对列表中的元素进行排序。这个函数具有很大的灵活性,可以处理各种不同的排序需求。通过熟练掌握sorted函数,我们可以更加高效地解决各种实际问题。