Python中使用sorted函数来排序
在Python中,sorted函数被用来对列表和元组进行排序。该函数可帮助用户对任何类型的可迭代对象进行排序,例如字符串,数字和自定义对象。在本文中,我们将探讨如何使用sorted函数进行排序。
语法
通过sorted函数,您可以按升序或降序排序一个序列,其语法如下:
sorted(iterator, key=None, reverse=False)
参数说明:
- iterator: 必需,排序对象。
- key: 可选,用于比较的函数,指定一个函数,该函数接受一个列表元素作为参数并返回一个关键字。该关键字将用于排序。
- reverse: 可选,排序顺序(reverse=True为降序,否则为升序)。
示例
以下是一个简单的例子,展示了如何使用sorted函数对列表进行排序:
my_list = [3, 5, 1, 4, 2]
sorted_list = sorted(my_list)
print(sorted_list)
运行结果:
[1, 2, 3, 4, 5]
在上面的例子中,我们创建了一个名为“my_list”的列表,并使用sorted函数对其进行排序。通过运行该程序,我们看到:输出为按升序排列的列表。
使用自定义函数进行排序
您可以使用自定义函数来定义自己的排序方式。 这是一个演示如何使用sorted函数和自定义函数对列表进行排序的示例:
def my_function(n):
return n % 10
my_list = [344, 64, 127, 771, 35, 5]
sorted_list = sorted(my_list, key=my_function)
print(sorted_list)
运行结果:
[127, 35, 344, 64, 5, 771]
在上面的示例中,我们定义了一个名为“my_function”的函数,并将其用作关键字,以对列表中的元素进行排序。该函数返回数字各位上的个位数(n%10)。我们可以看到,运行结果是按照个位数排序的列表。
对于对象排序
我们可以使用sorted函数来对自定义对象进行排序。 可以使用__lt__方法(“less than”)实现对象的基于大小的比较,代码的示例如下:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def __lt__(self, other):
return self.age < other.age
person1 = Person("Mike", 40)
person2 = Person("John", 25)
person3 = Person("Mary", 35)
persons = [person1, person2, person3]
sorted_persons = sorted(persons)
for person in sorted_persons:
print(person.name, person.age)
运行结果:
John 25
Mary 35
Mike 40
在上面的示例中,我们使用__lt__函数来比较两个人的年龄。通过对Person对象的列表应用sorted函数,我们在运行程序时看到输出的Person对象按照年龄排序。 第一个输出是John,然后是Mary,最后是Mike。
总结
排序是编程中的常见操作之一。使用Python中的内置函数sorted可以轻松地对列表,元组以及自定义对象进行排序。 该函数除了对排序对象进行排序外,还可以根据自己的需求传递自定义函数、构建自定义对象,实现多种排序方式。对于初学者来说,熟练掌握Python中排序函数的使用是至关重要的。
