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

Python中的“sorted”函数的基本用法

发布时间:2023-06-19 06:33:13

Python中的“sorted”函数是内建函数之一,通常用于对序列类型数据(列表、字符串、元组等)进行排序操作。与其他排序函数不同的是,sorted函数并不改变原有序列,而是返回排好序的新序列。

基本语法

sorted()函数的基本语法如下:

sorted(iterable[, key][, reverse])

其中,iterable参数为要排序的序列,支持的类型包括列表、元组、字符串等;key参数指定一个函数,用于从每个元素中提取一个用于比较的键值,可以是一个函数名、lambda表达式等;reverse参数表示排序顺序,为True则从大到小排列,为False则从小到大排列,默认为False。

示例

下面是一个简单的示例,对一个列表进行排序:

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

输出结果为:

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

可以看到,sorted函数返回一个排好序的新列表。原来的lst列表并未发生变化。

key参数示例

下面是一个使用key参数的示例,将一个学生列表按照分数从高到低排序:

students = [
    {"name": "Tom", "score": 80},
    {"name": "Lucy", "score": 90},
    {"name": "Jerry", "score": 75},
    {"name": "Sara", "score": 85},
    {"name": "Bob", "score": 85},
    {"name": "David", "score": 60}
]

sorted_students = sorted(students, key=lambda x:x["score"], reverse=True)

for student in sorted_students:
    print("{}: {}".format(student["name"], student["score"]))

输出结果为:

Lucy: 90
Sara: 85
Bob: 85
Tom: 80
Jerry: 75
David: 60

可以看到,通过key参数指定一个lambda表达式,从每个学生字典中提取出score字段作为排序键值,从而实现按照分数从高到低排序。

reverse参数示例

下面是一个使用reverse参数的示例,将一个列表按照降序排列:

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

输出结果为:

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

可以看到,通过将reverse参数设置为True,实现了按照降序排列。

总结

sorted函数是一个非常实用的内建函数,可以用于排序、去重等场景。需要注意的是,sorted函数不会改变原有序列,而是返回一个排好序的新序列,所以在实际使用时需要根据需要选择是否覆盖原有序列。另外,使用key参数可以实现按照自定义规则排序,可以极大地扩展sorted函数的应用场景。