python二元数组排序函数

  • Post category:Python

来分享一下有关Python中二维数组排序的方法吧。

二维数组,也即多维数组,是指由多个一维数组组成的数组。其中每个一维数组中的元素都具有相同的数据类型,并且称作数组的行(row),那么多个一维数组所组成的多维数组即为矩阵,每一列(column)也具有相同数量的元素。

对二维数组排序,需要指定排序的方式和排序的关键字。这里介绍两种排序方式:按行排序和按列排序。

按行排序

按行排序时,指定排序的方式为数组中的各个行,选择一行或多行作为排序的关键字,将其他行按照这个关键字进行排序。

python中实现按行排序可以使用sorted()函数。该函数可以指定按照行中的某个元素进行排序(例如第一个元素、第二个元素等等),也可以使用Lambda表达式来进行自定义排序。

下面是一个按行排序的示例,排序的关键字是每个子数组的第一个元素:

arr = [[9, 8, 7], [6, 5, 4], [3, 2, 1]]
sorted_arr = sorted(arr, key=lambda x: x[0]) # 根据第一个元素从小到大排序
print(sorted_arr)

结果是:

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

按列排序

按列排序时,指定排序的方式为数组中的各个列,选择一列或多列作为排序的关键字,将其他列按照这个关键字进行排序。

python中实现按列排序可以使用zip()函数。该函数可以将多个列表、元组、字符串等对象“压缩”到一个元组中,然后将这些元组再“解压缩”为多个列表,得到矩阵的列,然后按照关键字进行排序。

下面是一个按列排序的示例,排序的关键字是每列的第一个元素:

arr = [[9, 8, 7], [6, 5, 4], [3, 2, 1]]
sorted_arr = [list(x) for x in zip(*sorted(zip(*arr), key=lambda x: x[0]))]
print(sorted_arr)

结果是:

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

以上是二维数组排序的攻略,希望对你有帮助。