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

如何使用 Python 的 sorted() 函数排序列表、元组和字典。

发布时间:2023-06-16 15:28:46

Python 的 sorted() 函数是一个内置函数,它可以对一个可迭代对象进行排序。这个函数返回排好序的可迭代对象(列表、元组、字典)的拷贝,而原来的可迭代对象不会受到影响。

sorted() 函数通常使用 lambda 函数或 operator 模块来进行元素比较。我们可以在 sorted() 函数内部传递一个函数对象,用这个函数去比较排序的元素。Lambda 函数和 operator 模块可以用于按照特定的属性进行排序。

下面我们讲解如何使用 sorted() 函数来对列表、元组和字典进行排序。

1. 排序列表

我们可以将列表传递给 sorted() 函数,然后根据需要的方式来进行排序。

例如,我们有一个包含数字的列表:

numbers = [10, 2, 4, 3, 9, 1, 5, 8, 7, 6]

我们可以使用 sorted() 函数来将这些数字按照从小到大的顺序排序:

sorted_numbers = sorted(numbers)

我们还可以使用 Lambda 函数来按照另一种方式自定义排序,例如按照数字大小的倒序排列:

reversed_numbers = sorted(numbers, key=lambda x: -x)

2. 排序元组

元组是包含一个有序集合的不可变序列。我们可以创建一个元组,然后使用 sorted() 函数来排序元组的元素。

例如,我们有一个学生元组列表:

students = [("John", "Doe", 29), ("Alex", "Smith", 26), ("Mary", "Johnson", 27)]

我们可以按照年龄从小到大的方式来排序这些学生:

sorted_students = sorted(students, key=lambda x: x[2])

使用元组的键值来排序的 Lambda 函数是 lambda x: x[2]

3. 排序字典

字典是一种映射类型,它把一个键值映射到一个值。字典没有顺序,因此使用 sorted() 函数对字典进行排序是没有意义的。但是,我们可以根据字典的键或值来对其进行排序。

例如,我们有一个包含年龄和姓名的字典:

people = {"John": 29, "Alex": 26, "Mary": 27}

我们可以按照字典的键来对其进行排序:

sorted_people_by_key = sorted(people.items())

这将返回按字典键排序的元组列表:

[('Alex', 26), ('John', 29), ('Mary', 27)]

我们也可以按照字典值来对其进行排序:

sorted_people_by_value = sorted(people.items(), key=lambda x: x[1])

这将返回按字典值排序的元组列表:

[('Alex', 26), ('Mary', 27), ('John', 29)]

使用字典的值来排序的 Lambda 函数是 lambda x: x[1]

总之,sorted() 函数是 Python 中一个非常有用的内置函数,它可以排序列表、元组、字典和其他可迭代的对象。我们可以根据需要的方式来定制排序规则,以便满足我们的需求。