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

Python中排序函数sorted()的用法

发布时间:2023-06-19 14:46:44

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()可以对各种可迭代对象进行排序,同时也支持自定义排序函数,非常灵活方便。在实际开发中,经常会用到该函数来快速排序序列,提高程序效率。