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

Python中的sorted函数:对列表、元组等可迭代对象进行排序。

发布时间:2023-06-17 08:56:15

sorted函数是Python内置的一个非常有用的函数,用于对可迭代对象进行排序。它可以对数字、字符串等可以比较大小的对象进行排序,也可以对自定义对象按照指定的规则进行排序。

sorted函数的语法如下:

sorted(iterable, *, key=None, reverse=False)

其中,iterable是需要排序的可迭代对象,比如列表、元组等;key是一个函数,用于指定排序的规则;reverse是一个布尔值,表示是否降序排序。

使用sorted函数,可以对列表进行排序。例如:

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

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

可以看到,sorted函数对原列表进行了升序排列,并返回了一个新的排序后的列表。

除了对数字列表进行排序,sorted函数也可以对字符串列表进行排序。例如:

words = ["apple", "banana", "orange", "cherry"]
sorted_words = sorted(words)
print(sorted_words)

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

同样地,sorted函数对原列表进行了升序排列,并返回了一个新的排序后的列表。

在某些情况下,我们需要按照自己的规则进行排序。例如,我们可以按照字符串的长度进行排序。可以使用key参数来指定排序规则,例如:

words = ["apple", "banana", "orange", "cherry"]
sorted_words = sorted(words, key=len)
print(sorted_words)

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

可以看到,sorted函数按照字符串的长度进行了排序。

除此之外,sorted函数还可以用于对自定义对象进行排序。例如,我们可以定义一个Person类,然后按照年龄进行排序。代码如下:

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

    def __repr__(self):
        return f"Person(name={self.name}, age={self.age})"

people = [Person("Alice", 25),
          Person("Bob", 30),
          Person("Charlie", 20)]

sorted_people = sorted(people, key=lambda person: person.age)
print(sorted_people)

输出结果为:[Person(name=Charlie, age=20), Person(name=Alice, age=25), Person(name=Bob, age=30)]。

可以看到,sorted函数按照年龄的大小进行了排序。

总的来说,sorted函数是Python内置的一个非常有用的函数,可以对列表、元组等可迭代对象进行排序。通过指定key参数,我们可以按照自己的规则进行排序。sorted函数还可以用于对自定义对象进行排序。在实际编程中,我们经常需要对数据进行排序,因此掌握sorted函数对我们的编程能力有很大的帮助。