Python中排序函数sorted()的用法
Python中的排序函数sorted()用于将一个序列按照指定的排序方式进行排序。sorted()函数支持对数字、字符串和自定义对象进行排序,支持正向排序和反向排序。
语法:
sorted(iterable, key=None, reverse=False)
参数:
- iterable:排序的序列,可以是list、tuple、dictionary、set、字符串等可迭代对象;
- key:指定用于排序的函数,传入一个函数作为参数,该函数接收一个参数并返回对应排序优先级;
- reverse:是否按照逆序排序,默认为False,即按照升序排序。
下面是一些常用的示例:
1. 对列表进行排序
list = [4, 7, 1, 9, 5, 3]
sorted_list = sorted(list)
print(sorted_list)
输出结果为 [1, 3, 4, 5, 7, 9],即按照升序排序列表。
2. 对字符串进行排序
str = "zbdaf"
sorted_str = sorted(str)
print(sorted_str)
输出结果为 ['a', 'b', 'd', 'f', 'z'],即按照升序排序字符串。
3. 对元组进行排序
tuple = (4, 7, 1, 9, 5, 3)
sorted_tuple = sorted(tuple)
print(sorted_tuple)
输出结果为 [1, 3, 4, 5, 7, 9],即按照升序排序元组。
4. 对字典进行排序
dict = {'name': 'Alice', 'age': 18, 'score': 90}
sorted_dict = sorted(dict.items())
print(sorted_dict)
输出结果为 [('age', 18), ('name', 'Alice'), ('score', 90)],即按照字典中键的升序排序。
5. 对自定义类进行排序
class Student:
def __init__(self, name, age, score):
self.name = name
self.age = age
self.score = score
def __repr__(self):
return repr((self.name, self.age, self.score))
students = [Student('Alice', 18, 90), Student('Bob', 20, 80), Student('Charlie', 19, 95)]
sorted_students = sorted(students, key=lambda student: student.age)
print(sorted_students)
输出结果为 [('Alice', 18, 90), ('Charlie', 19, 95), ('Bob', 20, 80)],即按照学生年龄的升序排序。
总结:
Python中的排序函数sorted()可以对各种可迭代对象进行排序,同时也支持自定义排序函数,非常灵活方便。在实际开发中,经常会用到该函数来快速排序序列,提高程序效率。
