Python3 列表排序

引言

在编程中,我们经常需要对数据进行排序。排序可以让我们更方便地查找和处理数据。Python3提供了多种方法来对列表进行排序。本文将介绍Python3中的列表排序方法,并提供代码示例。

列表排序方法

Python3提供了多种方法来对列表进行排序,包括使用内置函数sorted()和列表对象的sort()方法。下面我们将逐个介绍这些方法的使用。

使用内置函数sorted()

内置函数sorted()可以对列表进行排序,它接受一个可迭代对象作为参数,并返回一个新的经过排序的列表。sorted()函数不会改变原始列表。

下面是使用sorted()函数对列表进行排序的代码示例:

numbers = [5, 2, 8, 1, 9, 3, 6]
sorted_numbers = sorted(numbers)
print(sorted_numbers)

运行以上代码,输出结果为:

[1, 2, 3, 5, 6, 8, 9]

可以看到,sorted()函数返回的是一个新的经过排序的列表。

使用列表对象的sort()方法

列表对象的sort()方法可以直接对列表进行排序,它会改变原始列表。该方法没有返回值。

下面是使用sort()方法对列表进行排序的代码示例:

numbers = [5, 2, 8, 1, 9, 3, 6]
numbers.sort()
print(numbers)

运行以上代码,输出结果为:

[1, 2, 3, 5, 6, 8, 9]

可以看到,sort()方法直接修改了原始列表。

指定排序顺序

以上介绍的方法默认按照数字或字符串的升序进行排序。但是,有时我们可能需要按照降序进行排序,或者自定义排序规则。

按照降序排序

可以通过传递reverse=True参数来对列表进行降序排序。

下面是按照降序排序的代码示例:

numbers = [5, 2, 8, 1, 9, 3, 6]
sorted_numbers = sorted(numbers, reverse=True)
print(sorted_numbers)

运行以上代码,输出结果为:

[9, 8, 6, 5, 3, 2, 1]

可以看到,列表按照降序排列。

自定义排序规则

有时,我们可能需要根据自定义的排序规则对列表进行排序。可以通过传递一个比较函数作为key参数来实现。

下面是根据自定义排序规则对列表进行排序的代码示例:

fruits = ["apple", "banana", "cherry", "durian", "elderberry"]
sorted_fruits = sorted(fruits, key=len)
print(sorted_fruits)

运行以上代码,输出结果为:

['apple', 'cherry', 'banana', 'durian', 'elderberry']

可以看到,列表按照字符串长度进行排序。

关系图

下面是列表排序方法的关系图:

erDiagram
    List --|> Sorted
    List --|> Sort

可以看到,列表对象包含了排序方法。

序列图

下面是使用sorted()函数对列表进行排序的序列图:

sequenceDiagram
    participant User
    participant Program

    User->>Program: 提供一个列表
    Program->>User: 返回一个经过排序的新列表

可以看到,用户提供一个列表给程序,程序返回一个经过排序的新列表。

总结

本文介绍了Python3中对列表进行排序的方法,包括使用内置函数sorted()和列表对象的sort()方法。我们还介绍了如何按照降序排序以及自定义排序规则。希望本文对你理解Python3列表排序有所帮助。

参考资料

  • [Python3 Documentation: Sorting HOW TO](