0
点赞
收藏
分享

微信扫一扫

Python当中的排序

在Python中,有多种方式对数据进行排序,常见的是对列表(list)进行排序,另外numpy库的数组也有排序方法。下面分别介绍:

列表排序

  1. 使用列表的 sort() 方法sort() 方法会直接在原列表上进行排序,改变原列表的顺序。

my_list = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
my_list.sort()
print(my_list)

默认是升序排序,如果要降序排序,可以设置 reverse=True 参数。

my_list = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
my_list.sort(reverse=True)
print(my_list)

  1. 使用 sorted() 函数sorted() 函数会返回一个新的已排序列表,原列表保持不变。

my_list = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
new_sorted_list = sorted(my_list)
print(new_sorted_list)
print(my_list)

同样,也可以通过 reverse=True 参数实现降序排序。

my_list = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
new_sorted_list = sorted(my_list, reverse = True)
print(new_sorted_list)

  1. 对复杂对象列表排序:如果列表中的元素是自定义对象或者字典等复杂类型,可以通过 key 参数指定一个函数来确定排序依据。 例如,假设有一个包含字典的列表,每个字典表示一个人及其年龄,要按年龄对人进行排序:

people = [
    {'name': 'Alice', 'age': 25},
    {'name': 'Bob', 'age': 20},
    {'name': 'Charlie', 'age': 30}
]
sorted_people = sorted(people, key=lambda person: person['age'])
print(sorted_people)

这里通过 key 参数指定了一个匿名函数 lambda person: person['age'],表示按照字典中 'age' 键对应的值进行排序。

NumPy数组排序

如果使用 numpy 库,numpy.ndarray 也有排序方法。首先需要安装 numpy 库(pip install numpy)。

import numpy as np
arr = np.array([3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5])
sorted_arr = np.sort(arr)
print(sorted_arr)

对于多维数组,np.sort() 也可以按指定轴进行排序。例如,对二维数组按行排序:

import numpy as np
two_d_arr = np.array([
    [3, 1, 4],
    [1, 5, 9],
    [2, 6, 5]
])
sorted_two_d_arr = np.sort(two_d_arr, axis = 1)
print(sorted_two_d_arr)

这里 axis = 1 表示按行排序,如果 axis = 0 则表示按列排序。

举报

相关推荐

0 条评论