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

Python中的sort()函数如何使用,可以进行哪些排序操作?

发布时间:2023-06-03 07:17:58

Python中的sort()函数是非常常见的一种排序函数,它是Python中常用的列表排序函数之一,可以对列表类型的数据进行排序。sort()函数有许多用法,其基本用法是对列表进行排序,但判断数据类型和功能的不同,sort()可以按不同的方式排序,下面将详细介绍sort()函数的用法。

sort()函数的基本用法:

sort()函数的基本语法为:lst.sort(key=None, reverse=False),其中,key和reverse是可选的参数。

参数说明:

? key:指定一个可调用对象,其作用是将列表中的每个元素传入该可调用对象中, 然后以可调用对象的返回值作为排序key来排序列表中的各元素。如果该参数不传入,则列表根据元素自身的大小进行排序。

? reverse:默认值为False,表示升序排序。当reverse取值为True时表示降序排序。

sort()函数的用法:

1. 升序排列

当列表是数字类型时,可以通过sort()函数将列表按数字大小升序排列:

code:

lst = [2, 1, 4, 5, 3]
lst.sort()
print(lst) #[1, 2, 3, 4, 5]

当列表是字符串类型时,可以通过sort()函数将列表按字母表顺序升序排列:

code:

lst = ['apple', 'banana', 'orange', 'peach']
lst.sort()
print(lst) #['apple', 'banana', 'orange', 'peach']

2. 降序排列

当列表是数字类型时,可以通过sort()函数将列表按数字大小降序排列:

code:

lst = [2, 1, 4, 5, 3]
lst.sort(reverse=True)
print(lst) #[5, 4, 3, 2, 1]

当列表是字符串类型时,可以通过sort()函数将列表按字母表逆序排列:

code:

lst = ['apple', 'banana', 'orange', 'peach']
lst.sort(reverse=True)
print(lst) #['peach', 'orange', 'banana', 'apple']

3. 按照元素的某个属性进行排序

当列表是对象类型时,可以通过sort()函数将列表根据某个属性升序或降序排列,例如按照学生年龄排序:

code:

class Student:
    def __init__(self, name, age):
        self.name = name
        self.age = age
    def __repr__(self):
        return f'Student(name={self.name}, age={self.age})'

students = [
    Student('Tom', 20),
    Student('Lucy', 18),
    Student('Mike', 22),
    Student('Rita', 19)
]

students.sort(key=lambda x: x.age)
print(students) #[Student(name=Lucy, age=18), Student(name=Rita, age=19), Student(name=Tom, age=20), Student(name=Mike, age=22)]

4. 对字典进行排序

可以通过sort()函数对字典类型的数据进行排序,例如按照字典的value值排序:

code:

dct = {'a': 3, 'b': 2, 'c': 1, 'd': 4}
dct_sorted_by_value = sorted(dct.items(), key=lambda x: x[1])
print(dct_sorted_by_value) #[('c', 1), ('b', 2), ('a', 3), ('d', 4)]

sort()函数的用法有很多种,可以根据实际需要进行使用。需要注意的是,sort()函数会直接对原列表进行排序,如果需要保留原列表,可以先拷贝一份再进行排序操作。