如何在 Python 中使用 sort() 和 sorted() 对列表进行排序
发布日期:
本文内容
在处理列表时,元素的顺序往往难以预测,因为用户提交的数据顺序通常不受我们控制。尽管这种情况在很多场合下是不可避免的,但在某些情况下,我们需要按照特定的顺序展示信息。
有时,我们希望保持列表元素的原始顺序,而有时则需要重新排序。Python 提供了多种管理列表的方法,可以根据具体需求选择使用。
使用 sort() 方法对列表进行永久排序
Python 的 sort()
方法可以轻松地对列表进行排序。例如,如果你有一个汽车品牌列表,并希望按照字母顺序排列它们。假设列表中的所有品牌名称都是小写字母:
|
|
sort()
方法会改变列表元素的原始顺序,一旦排序,原始顺序就无法恢复:
|
|
如果你想要按照字母顺序的逆序排列列表,只需向 sort()
方法传递 reverse=True
参数即可。以下示例展示了如何将汽车列表按字母顺序逆序排列:
|
|
同样,这种排序操作会永久改变列表元素的顺序:
|
|
使用 sorted() 函数对列表进行临时排序
如果你希望在不改变列表原始顺序的情况下,按照特定顺序展示列表元素,可以使用 sorted()
函数。这个函数允许你按照特定顺序展示元素,而不会影响它们在原始列表中的位置。
以下是如何使用 sorted()
函数对汽车列表进行操作的示例:
|
|
首先,按照原始顺序打印列表,然后按照字母顺序展示该列表,并在展示特定顺序后验证列表元素的顺序是否与之前相同。
|
|
请注意,调用 sorted()
函数后,列表元素的顺序并没有改变。如果需要按照字母顺序的逆序展示列表,也可以向 sorted()
函数传递 reverse=True
参数。
注意: 当列表中的值不是全小写时,按字母顺序排列可能会更加复杂。在确定排序顺序时,对大写字母的不同解释可能会导致排序结果有所不同,这可能比本节介绍的内容更为复杂。然而,大多数排序方法都是基于本节所介绍的知识。
反向打印列表
要反转列表元素的顺序,可以使用 reverse()
方法。假设汽车列表是按照购买时间排序的,你可以轻松地按照相反的顺序排列这些汽车:
|
|
请注意,reverse()
方法并不是按照字母顺序的逆序排列列表元素,它只是简单地反转列表元素的顺序:
|
|
reverse()
方法会永久改变列表元素的顺序,但可以随时通过再次调用 reverse()
方法恢复到原始顺序。
确定列表的长度
使用 len()
函数可以快速获取列表的长度。在以下示例中,列表包含 4 个元素,因此其长度为 4:
|
|
len()
函数在需要完成诸如确定还有多少个任务未完成、需要管理多少项数据、计算网站注册用户数量等任务时非常有用。
注意: Python 在计算列表元素数量时是从 1 开始计数的,因此在确定列表长度时,你不会遭遇“差一错误”。