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

sorted函数-对列表进行排序

发布时间:2023-08-23 15:08:06

sorted()函数是Python内置函数之一,用于对列表进行排序。它可以接受一个可迭代对象作为参数,并返回一个新的排序过的列表。

在默认情况下,sorted()函数会按照升序对列表进行排序。例如,对于一个包含整数的列表,sorted()函数会将列表中的整数从小到大排列。

下面是一个例子,展示如何使用sorted()函数对一个整数列表进行排序:

numbers = [5, 2, 8, 1, 9]
sorted_numbers = sorted(numbers)
print(sorted_numbers)

输出结果为:[1, 2, 5, 8, 9]

除了整数,sorted()函数也可以对其他类型的数据进行排序。例如,你可以用它对字符串列表进行排序,如下所示:

fruits = ['apple', 'banana', 'orange', 'mango']
sorted_fruits = sorted(fruits)
print(sorted_fruits)

输出结果为:['apple', 'banana', 'mango', 'orange']

默认情况下,sorted()函数会根据元素的大小进行排序。这对于数字和字符串是适用的,因为可以通过比较运算符(如<、>、<=、>=)来确定元素的顺序。但是,在对自定义对象进行排序时,需要通过指定键值来定义元素的顺序。

例如,假设我们有一个包含学生信息的列表,每个学生信息都是一个字典,其中包含姓名(name)和年龄(age)。

students = [
    {'name': 'Alice', 'age': 20},
    {'name': 'Bob', 'age': 18},
    {'name': 'Charlie', 'age': 22}
]

如果我们要按照学生的年龄对列表进行排序,可以使用sorted()函数并传入一个lambda函数作为键。

sorted_students = sorted(students, key=lambda student: student['age'])
print(sorted_students)

输出结果为:

[
    {'name': 'Bob', 'age': 18},
    {'name': 'Alice', 'age': 20},
    {'name': 'Charlie', 'age': 22}
]

在这个例子中,lambda函数指定了根据学生的年龄进行排序,sorted()函数会根据这个键对列表进行排序。

除了默认的升序排序外,sorted()函数还可以接受一个可选的reverse参数,用于指定排序的顺序。如果设置为True,则会按照降序进行排序。

下面是一个例子,展示如何按照降序对一个整数列表进行排序:

numbers = [5, 2, 8, 1, 9]
sorted_numbers = sorted(numbers, reverse=True)
print(sorted_numbers)

输出结果为:[9, 8, 5, 2, 1]

总结:

sorted()函数是Python内置函数之一,用于对列表进行排序。

默认情况下,sorted()函数按照升序对列表进行排序,但也可以通过指定reverse参数进行降序排序。

当对自定义对象进行排序时,可以使用lambda函数指定排序的键值。

sorted()函数返回一个新的排序过的列表,不会修改原始的列表。