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

Python中的sorted函数:如何进行排序

发布时间:2023-07-25 15:21:48

sorted函数是Python中内置的函数之一,它可以对可迭代对象进行排序。sorted函数有几种不同的用法,可以按照不同的需求进行排序。

1. 对列表进行排序:

sorted函数可以对一个列表进行排序,并返回一个新的排序后的列表。默认情况下,sorted函数按照升序进行排序。例如:

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

如果想要按照降序进行排序,可以使用reverse参数设置为True:

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

2. 对元组进行排序:

和列表一样,sorted函数也可以对元组进行排序。元组是不可变的对象,所以无法直接修改,但可以创建一个新的排序后的元组。例如:

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

3. 对字符串进行排序:

sorted函数同样可以对字符串进行排序。字符串按照字母的ASCII值进行排序,也可以根据需要使用reverse参数进行降序排序。例如:

string = "hello"
sorted_string = sorted(string)
print(sorted_string)  # ['e', 'h', 'l', 'l', 'o']

4. 自定义排序规则:

除了默认的升序排序,sorted函数还提供了key参数,用于自定义排序规则。key参数需要一个函数,用于从可迭代对象中的每个元素中提取一个键,根据这个键进行排序。例如,可以根据元素的长度进行排序:

fruits = ["apple", "orange", "banana", "grape"]
sorted_fruits = sorted(fruits, key=len)
print(sorted_fruits)  # ['apple', 'grape', 'banana', 'orange']

可以根据元素的某个属性进行排序,例如按照人员的年龄进行排序:

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

people = [Person("Alice", 25), Person("Bob", 30), Person("Charlie", 20)]
sorted_people = sorted(people, key=lambda person: person.age)
for person in sorted_people:
    print(person.name, person.age)

以上是sorted函数的几种常见用法。sorted函数可以灵活地根据不同的需求进行排序,使得我们能够轻松地对可迭代对象进行排序操作。