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函数的应用场景。
