Python sorted()函数:列表排序
Python中的sorted()函数是用于对列表或其他可迭代对象进行排序的内置函数。它以原始序列为输入,并返回一个新的排好序的序列。
sorted()函数的语法如下:
sorted(iterable, key=None, reverse=False)
- iterable:表示被排序的序列,它可以是包含任意类型元素的列表、元组或其他可迭代对象。
- key:表示一个函数用于从每个元素中提取比较关键字,用于排序依据。默认值为None,表示用原始元素本身进行排序。
- reverse:表示是否逆序排列,默认为False。
下面我们来看看一些示例,帮助我们更好地理解sorted()函数。
## 使用sorted()函数对列表进行排序
下面我们来看看如何对一个包含随机整数的列表进行排序:
>>> my_list = [2, 1, 4, 3, 5] >>> sorted_list = sorted(my_list) >>> print(sorted_list) [1, 2, 3, 4, 5]
在上面的示例中,我们先创建了一个名为my_list的列表,其中包含5个随机整数。我们然后调用sorted()函数将列表进行排序,最终print()函数输出排好序的结果。
我们还可以对一个包含字符串的列表进行排序:
>>> my_list = ["apple", "banana", "orange", "grape"] >>> sorted_list = sorted(my_list) >>> print(sorted_list) ['apple', 'banana', 'grape', 'orange']
在这个例子中,我们先创建了一个名为my_list的列表,里面包含四个不同的水果名称。我们然后调用sorted()函数将列表进行排序,并使用print()函数输出排好序的结果。
## 使用sorted()函数逆序排列列表
在上面的例子中,我们默认使用升序进行列表的排序。如果我们想要使用降序进行排序,我们可以设置reverse参数为True:
>>> my_list = [2, 1, 4, 3, 5] >>> sorted_list = sorted(my_list, reverse=True) >>> print(sorted_list) [5, 4, 3, 2, 1]
在这个例子中,我们让函数sorted()按照降序排列my_list,并使用print()函数输出排好序的结果。
## 使用sorted()函数按照给定的关键字进行排序
在sorted()函数中,除了默认使用元素本身进行比较之外,我们还可以使用一个关键字函数来决定排序的依据。例如,我们可以使用字符串的长度作为比较关键字,对一个包含随机字符串的列表进行排序:
>>> my_list = ["apple", "banana", "orange", "grape"] >>> sorted_list = sorted(my_list, key=lambda x: len(x)) >>> print(sorted_list) ['apple', 'grape', 'banana', 'orange']
在这个例子中,我们使用lambda表达式创建一个简单的匿名函数,用于对每个元素计算字符串长度,并将该长度用作排序的依据。最终,我们使用print()函数输出排好序的结果。
## 对包含多个属性的对象进行排序
在实际开发中,我们可能需要对包含多个属性的对象进行排序。例如,我们可能有一个Person类,其中包含姓名和年龄两个属性。为了依据年龄对Person对象进行排序,我们可以使用sort()函数的key参数来创建一个用于比较年龄的lambda表达式:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
people = [
Person("Tom", 23),
Person("Bob", 30),
Person("Alice", 25)
]
sorted_people = sorted(people, key=lambda x: x.age)
for person in sorted_people:
print(person.name, person.age)
在这个例子中,我们定义了一个Person类,该类包含两个属性:一个名字和一个年龄。我们然后创建了一个包含三个Person对象的列表,每个对象都有一个 的名字和年龄。
我们用lambda表达式作为排序函数的key参数,用于比较每个Person对象的年龄属性。最终,我们将排好序的列表打印出来,以检查排序结果是否正确。
## 总结
在Python中,使用sorted()函数可以对包含任何类型元素的列表进行排序。我们可以使用默认(升序)或逆序排序,并使用特定的关键字函数作为排序依据。这使得sorted()函数成为了Python编程中一个非常强大且灵活的工具。
