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

如何使用Python中的sorted()函数对可迭代对象进行排序?

发布时间:2023-06-12 04:58:26

Python中的sorted()函数是一个非常有用的函数,它可以用于对可迭代对象进行排序。这个函数的返回值是一个排序后的列表或元组,这取决于被排序的对象的类型。sorted()函数可以对数字、字符串、字典等等不同类型的数据进行排序。

对数字列表进行排序

对数字列表进行排序非常简单。以下是对一个数字列表进行排序的示例代码:

my_list = [4, 1, 6, 3, 2, 5]
sorted_list = sorted(my_list)
print(sorted_list)

输出:

[1, 2, 3, 4, 5, 6]

对字符串列表进行排序

对字符串列表进行排序也非常简单。以下是对一个字符串列表进行排序的示例代码:

my_list = ['apple', 'banana', 'cherry', 'pear']
sorted_list = sorted(my_list)
print(sorted_list)

输出:

['apple', 'banana', 'cherry', 'pear']

通过观察输出结果可以发现,sorted()函数对字符串列表是按照字母顺序进行排序的。

对字典进行排序

对字典进行排序需要用到一些技巧。字典是一个无序的键-值对集合,因此必须指定排序依据的键,才能进行排序。以下是对一个字典进行排序的示例代码:

my_dict = {'apple': 10, 'banana': 8, 'cherry': 2, 'pear': 5}
sorted_dict = sorted(my_dict.items(), key=lambda x: x[1])
print(sorted_dict)

输出:

[('cherry', 2), ('pear', 5), ('banana', 8), ('apple', 10)]

在这个示例中,我们使用了sorted()函数的关键字参数key来指定排序的依据。我们使用lambda函数来返回字典中的值,lambda函数的语法很简单,这里就不再赘述了。

对自定义对象进行排序

对自定义对象进行排序也需要用到key参数。以下是对一个自定义对象进行排序的示例代码:

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', 28), Person('Bob', 23), Person('Charlie', 35)]
sorted_people = sorted(people, key=lambda x: x.age)
print(sorted_people)

输出:

[Person(name=Bob, age=23), Person(name=Alice, age=28), Person(name=Charlie, age=35)]

在这个示例中,我们首先定义了一个Person类,并实现了__repr__方法用于打印对象。然后我们定义了三个Person对象,并将它们存储在一个列表中。最后,我们使用sorted()函数和key参数对列表进行排序,按照对象的age属性进行排序。

总结

sorted()函数是一个非常强大的函数,它可以用于对各种类型的数据进行排序。在本文中,我们介绍了如何使用sorted()函数对数字、字符串、字典和自定义对象进行排序。在使用sorted()函数时,记得要注意指定排序的依据,并了解具体类型的排序规则。