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

sorted()函数在Python中的常见用途

发布时间:2023-06-24 15:49:02

sorted()函数是Python中的内置函数之一,它可以用于对列表、元组和字典等可迭代对象进行排序。

1. 对列表的排序

使用sorted()函数对列表进行排序非常方便,它可以对数字(包括整数和浮点数)、字符串和其他可比较的对象进行排序。

示例1:

lst = [5, 2, 7, 1, 9]
sorted_lst = sorted(lst)
print(sorted_lst)

输出:

[1, 2, 5, 7, 9]

示例2:

lst = ['apple', 'banana', 'pear', 'orange']
sorted_lst = sorted(lst)
print(sorted_lst)

输出:

['apple', 'banana', 'orange', 'pear']

2. 对元组的排序

元组是不可变的对象,因此不能对它们进行排序。但是,我们可以使用sorted()函数将元组转换为列表,然后对列表进行排序。

示例:

tpl = (5, 2, 7, 1, 9)
sorted_tpl = tuple(sorted(list(tpl)))
print(sorted_tpl)

输出:

(1, 2, 5, 7, 9)

3. 对字典的排序

字典是无序的对象,因此无法对它们进行排序。但是,我们可以使用sorted()函数对字典的键进行排序,将其排序后的键对应的值组成一个新的有序字典。

示例:

dic = {'apple': 2, 'banana': 5, 'pear': 1, 'orange': 3}
sorted_dic = {k: dic[k] for k in sorted(dic)}
print(sorted_dic)

输出:

{'apple': 2, 'banana': 5, 'orange': 3, 'pear': 1}

4. 对对象进行排序

对象也可以使用sorted()函数进行排序,但是需要指定用作排序依据的对象属性。我们可以使用lambda表达式指定排序规则。

示例:

class Student:
    def __init__(self, name, age, grade):
        self.name = name
        self.age = age
        self.grade = grade

    def __repr__(self):
        return repr((self.name, self.age, self.grade))

students = [Student('Tom', 22, 90), Student('Lucy', 18, 95), Student('John', 20, 80)]
sorted_students = sorted(students, key=lambda s: s.age)
print(sorted_students)

输出:

[('Lucy', 18, 95), ('John', 20, 80), ('Tom', 22, 90)]

在这个示例中,我们定义了一个Student类,它有三个属性:name、age和grade。我们创建了一个包含三个Student对象的列表students,并使用sorted()函数对它们进行排序,其中指定了用age属性作为排序依据。注意,lambda表达式也可以使用其他属性(例如name或grade)作为排序依据。

总之,sorted()函数是Python中的一个强大的内置函数,它可以用于对许多常见的数据结构进行排序。无论你是在处理什么类型的数据,它都可以为你提供方便和灵活的排序能力。