小白编程
亮色模式 暗色模式 跟随系统
首页 Python

如何在 Python 中使用 sort() 和 sorted() 对列表进行排序

发布日期:

在处理列表时,元素的顺序往往难以预测,因为用户提交的数据顺序通常不受我们控制。尽管这种情况在很多场合下是不可避免的,但在某些情况下,我们需要按照特定的顺序展示信息。

有时,我们希望保持列表元素的原始顺序,而有时则需要重新排序。Python 提供了多种管理列表的方法,可以根据具体需求选择使用。

使用 sort() 方法对列表进行永久排序

Python 的 sort() 方法可以轻松地对列表进行排序。例如,如果你有一个汽车品牌列表,并希望按照字母顺序排列它们。假设列表中的所有品牌名称都是小写字母:

1
2
3
cars = ['bmw', 'audi', 'toyota', 'subaru']
cars.sort()
print(cars)

sort() 方法会改变列表元素的原始顺序,一旦排序,原始顺序就无法恢复:

1
['audi', 'bmw', 'subaru', 'toyota']

如果你想要按照字母顺序的逆序排列列表,只需向 sort() 方法传递 reverse=True 参数即可。以下示例展示了如何将汽车列表按字母顺序逆序排列:

1
2
3
cars = ['bmw', 'audi', 'toyota', 'subaru']
cars.sort(reverse=True)
print(cars)

同样,这种排序操作会永久改变列表元素的顺序:

1
['toyota', 'subaru', 'bmw', 'audi']

使用 sorted() 函数对列表进行临时排序

如果你希望在不改变列表原始顺序的情况下,按照特定顺序展示列表元素,可以使用 sorted() 函数。这个函数允许你按照特定顺序展示元素,而不会影响它们在原始列表中的位置。

以下是如何使用 sorted() 函数对汽车列表进行操作的示例:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
cars = ['bmw', 'audi', 'toyota', 'subaru']

print("Here is the original list:")
print(cars)

print("\nHere is the sorted list:")
print(sorted(cars))

print("\nHere is the original list again:")
print(cars)

首先,按照原始顺序打印列表,然后按照字母顺序展示该列表,并在展示特定顺序后验证列表元素的顺序是否与之前相同。

1
2
3
4
5
6
7
8
Here is the original list:
['bmw', 'audi', 'toyota', 'subaru']

Here is the sorted list:
['audi', 'bmw', 'subaru', 'toyota']

Here is the original list again:
['bmw', 'audi', 'toyota', 'subaru']

请注意,调用 sorted() 函数后,列表元素的顺序并没有改变。如果需要按照字母顺序的逆序展示列表,也可以向 sorted() 函数传递 reverse=True 参数。

注意: 当列表中的值不是全小写时,按字母顺序排列可能会更加复杂。在确定排序顺序时,对大写字母的不同解释可能会导致排序结果有所不同,这可能比本节介绍的内容更为复杂。然而,大多数排序方法都是基于本节所介绍的知识。

反向打印列表

要反转列表元素的顺序,可以使用 reverse() 方法。假设汽车列表是按照购买时间排序的,你可以轻松地按照相反的顺序排列这些汽车:

1
2
3
4
5
cars = ['bmw', 'audi', 'toyota', 'subaru']
print(cars)

cars.reverse()
print(cars)

请注意,reverse() 方法并不是按照字母顺序的逆序排列列表元素,它只是简单地反转列表元素的顺序:

1
2
['bmw', 'audi', 'toyota', 'subaru']
['subaru', 'toyota', 'audi', 'bmw']

reverse() 方法会永久改变列表元素的顺序,但可以随时通过再次调用 reverse() 方法恢复到原始顺序。

确定列表的长度

使用 len() 函数可以快速获取列表的长度。在以下示例中,列表包含 4 个元素,因此其长度为 4:

1
2
cars = ['bmw', 'audi', 'toyota', 'subaru']
len(cars)

len() 函数在需要完成诸如确定还有多少个任务未完成、需要管理多少项数据、计算网站注册用户数量等任务时非常有用。

注意: Python 在计算列表元素数量时是从 1 开始计数的,因此在确定列表长度时,你不会遭遇“差一错误”。

相关文章