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

Python中sorted()函数是什么?如何将其用于排序列表?

发布时间:2023-06-16 04:19:50

Python中的sorted()函数是一种内置的排序函数,可用于对列表、元组、集合和字典等数据类型进行排序。该函数能够返回一个新的排序后的序列。

排序列表是实际编程中非常常见的操作,因此学习如何使用sorted()函数对列表进行排序非常重要。下面将介绍如何使用sorted()函数对列表进行排序。

先看一个简单的示例:

lst = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
sorted_lst = sorted(lst)
print(sorted_lst)

输出结果为:

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

接下来分析上述代码:

1. 首先定义了一个列表lst,其中包含了多个整数。

2. 调用sorted(lst)函数对lst进行排序。该函数会创建一个新的有序列表,并返回该列表。

3. sorted_lst接收排序后的结果,并将其打印出来。

可以看到,使用sorted()函数非常简单。只需传入一个待排序的序列(例如一个列表),sorted()函数就会返回一个新的排好序的序列(例如一个新的列表)。

需要注意的是,sorted()函数不会改变传入的原始序列,而是返回一个新的排好序的序列。如果您需要对原始序列进行排序,请使用sort()方法。例如,在lst上调用lst.sort()即可对lst进行排序。

下面进一步探讨sorted()函数的其他一些重要用法:

1. 降序排序

默认情况下,sorted()函数会按升序排列元素(例如数字从小到大)。但是,如果想按降序排列元素(例如数字从大到小),可以将参数reverse设置为True。例如:

lst = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
sorted_lst = sorted(lst, reverse=True)
print(sorted_lst)

输出结果为:

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

2. 根据关键字排序

有时候,需要按照元素的某个属性进行排序。例如,如果有一个包含人员信息的列表,需要按照人的年龄进行排序。可以通过在sorted()函数中设置key参数来实现。例如:

people = [{'name': 'Alice', 'age': 25},
          {'name': 'Bob', 'age': 18},
          {'name': 'Charlie', 'age': 32},
          {'name': 'David', 'age': 29},
          {'name': 'Emily', 'age': 22}]

sorted_people = sorted(people, key=lambda x: x['age'])
print(sorted_people)

输出结果为:

[{'name': 'Bob', 'age': 18}, {'name': 'Emily', 'age': 22}, {'name': 'Alice', 'age': 25}, {'name': 'David', 'age': 29}, {'name': 'Charlie', 'age': 32}]

上述代码中,key参数指定了按照字典中的age键进行排序,lambda函数指定了排序依据为age的值。

3. 对元组排序

在Python中,元组是一种不可变的列表。与列表不同,通常使用元组来表示一组相关的值。例如,坐标点可以表示为(x,y)元组。

在元组上进行排序与列表类似。例如:

points = [(3, 4), (1, 2), (4, 3), (2, 6), (5, 1)]
sorted_points = sorted(points)
print(sorted_points)

输出结果为:

[(1, 2), (2, 6), (3, 4), (4, 3), (5, 1)]

上述代码中,元组中的 个元素(x)按升序排序。如果 个元素相同,则按第二个元素(y)排序。

4. 自定义比较函数

除了使用lambda表达式来指定关键字函数外,还可以定义自己的比较函数并将其传递给sorted()函数。例如,下面是一个自定义的比较函数,将列表元素按其长度从长到短排序:

lst = ['apple', 'banana', 'cherry', 'date', 'elderberry', 'fig']
sorted_lst = sorted(lst, key=lambda x: len(x), reverse=True)

print(sorted_lst)

输出结果为:

['elderberry', 'banana', 'cherry', 'apple', 'date', 'fig']

上述代码中,key参数指定按元素长度进行排序,reverse参数设置为True以降序排列。

总之,sorted()函数是Python中常用的排序函数之一,能够帮助快速实现对多种数据类型的排序。无论在什么场景下,了解如何使用sorted()函数进行排序都是非常有用的技能。